js 頁面刷新location.reload和location.replace的區(qū)別小結(jié)
更新時間:2009年12月24日 01:12:07 作者:
在實際應(yīng)用的時候,重新刷新頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。下面有一些相關(guān)的內(nèi)容,大家看完了就會有更多的收獲。
首先介紹兩個方法的語法:
reload 方法,該方法強迫瀏覽器刷新當(dāng)前頁面。
語法: location.reload([bForceGet])
參數(shù): bForceGet, 可選參數(shù), 默認為 false,從客戶端緩存里取當(dāng)前頁。true, 則以 GET 方式,從服務(wù)端取最新的頁面, 相當(dāng)于客戶端點擊 F5("刷新")
replace 方法,該方法通過指定URL替換當(dāng)前緩存在歷史里(客戶端)的項目,因此當(dāng)使用replace方法之后,你不能通過“前進”和“后退”來訪問已經(jīng)被替換的URL。
語法: location.replace(URL)
在實際應(yīng)用的時候,重新刷新頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。因為這種做法就像是客戶端點F5刷新頁面,所以頁面的method="post"的時候,會出現(xiàn)“網(wǎng)頁過期”的提示。那是因為Session的安全保護機制。可以想到: 當(dāng)調(diào)用 location.reload() 方法的時候, aspx頁面此時在服務(wù)端內(nèi)存里已經(jīng)存在, 因此必定是 IsPostback 的。如果有這種應(yīng)用: 我們需要重新加載該頁面,也就是說我們期望頁面能夠在服務(wù)端重新被創(chuàng)建, 我們期望是 Not IsPostback 的。這里,location.replace() 就可以完成此任務(wù)。被replace的頁面每次都在服務(wù)端重新生成。你可以這么寫: location.replace(location.href)
下面是相關(guān)的應(yīng)用與知識點:
window.location.href
window.top.location.replace("http://chabaoo.cn")
top.location.href("http://chabaoo.cn")
window.navigate ("http://chabaoo.cn")
Html:
<meta http-equiv="Refresh" content="0; url=http://baidu.com/" >
---------------------------------------
URL即:統(tǒng)一資源定位符 (Uniform Resource Locator, URL)
完整的URL由這幾個部分構(gòu)成:
scheme://host:port/path?query#fragment
scheme:通信協(xié)議
常用的http,ftp,maito等
host:主機
服務(wù)器(計算機)域名系統(tǒng) (DNS) 主機名或 IP 地址。
port:端口號
整數(shù),可選,省略時使用方案的默認端口,如http的默認端口為80。
path:路徑
由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。
query:查詢
可選,用于給動態(tài)網(wǎng)頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術(shù)制作的網(wǎng)頁)傳遞參數(shù),可有多個參數(shù),用"&"符號隔開,每個參數(shù)的名和值用"="符號隔開。
fragment:信息片斷
字符串,用于指定網(wǎng)絡(luò)資源中的片斷。例如一個網(wǎng)頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。(也稱為錨點.)
對于這樣一個URL
http://chabaoo.cn:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
我們可以用javascript獲得其中的各個部分
1, window.location.href
整個URl字符串(在瀏覽器中就是完整的地址欄)
本例返回值: http://chabaoo.cn:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的協(xié)議部分
本例返回值:http:
3,window.location.host
URL 的主機部分
本例返回值:chabaoo.cn
4,window.location.port
URL 的端口部分
如果采用默認的80端口(update:即使添加了:80),那么返回值并不是默認的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路徑部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查詢(參數(shù))部分
除了給動態(tài)語言賦值以外,我們同樣可以給靜態(tài)頁面,并使用javascript來獲得相信應(yīng)的參數(shù)值
本例返回值:?ver=1.0&id=6
7,window.location.hash
錨點
本例返回值:#imhere
reload 方法,該方法強迫瀏覽器刷新當(dāng)前頁面。
語法: location.reload([bForceGet])
參數(shù): bForceGet, 可選參數(shù), 默認為 false,從客戶端緩存里取當(dāng)前頁。true, 則以 GET 方式,從服務(wù)端取最新的頁面, 相當(dāng)于客戶端點擊 F5("刷新")
replace 方法,該方法通過指定URL替換當(dāng)前緩存在歷史里(客戶端)的項目,因此當(dāng)使用replace方法之后,你不能通過“前進”和“后退”來訪問已經(jīng)被替換的URL。
語法: location.replace(URL)
在實際應(yīng)用的時候,重新刷新頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。因為這種做法就像是客戶端點F5刷新頁面,所以頁面的method="post"的時候,會出現(xiàn)“網(wǎng)頁過期”的提示。那是因為Session的安全保護機制。可以想到: 當(dāng)調(diào)用 location.reload() 方法的時候, aspx頁面此時在服務(wù)端內(nèi)存里已經(jīng)存在, 因此必定是 IsPostback 的。如果有這種應(yīng)用: 我們需要重新加載該頁面,也就是說我們期望頁面能夠在服務(wù)端重新被創(chuàng)建, 我們期望是 Not IsPostback 的。這里,location.replace() 就可以完成此任務(wù)。被replace的頁面每次都在服務(wù)端重新生成。你可以這么寫: location.replace(location.href)
下面是相關(guān)的應(yīng)用與知識點:
window.location.href
window.top.location.replace("http://chabaoo.cn")
top.location.href("http://chabaoo.cn")
window.navigate ("http://chabaoo.cn")
Html:
<meta http-equiv="Refresh" content="0; url=http://baidu.com/" >
---------------------------------------
URL即:統(tǒng)一資源定位符 (Uniform Resource Locator, URL)
完整的URL由這幾個部分構(gòu)成:
scheme://host:port/path?query#fragment
scheme:通信協(xié)議
常用的http,ftp,maito等
host:主機
服務(wù)器(計算機)域名系統(tǒng) (DNS) 主機名或 IP 地址。
port:端口號
整數(shù),可選,省略時使用方案的默認端口,如http的默認端口為80。
path:路徑
由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。
query:查詢
可選,用于給動態(tài)網(wǎng)頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術(shù)制作的網(wǎng)頁)傳遞參數(shù),可有多個參數(shù),用"&"符號隔開,每個參數(shù)的名和值用"="符號隔開。
fragment:信息片斷
字符串,用于指定網(wǎng)絡(luò)資源中的片斷。例如一個網(wǎng)頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。(也稱為錨點.)
對于這樣一個URL
http://chabaoo.cn:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
我們可以用javascript獲得其中的各個部分
1, window.location.href
整個URl字符串(在瀏覽器中就是完整的地址欄)
本例返回值: http://chabaoo.cn:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的協(xié)議部分
本例返回值:http:
3,window.location.host
URL 的主機部分
本例返回值:chabaoo.cn
4,window.location.port
URL 的端口部分
如果采用默認的80端口(update:即使添加了:80),那么返回值并不是默認的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路徑部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查詢(參數(shù))部分
除了給動態(tài)語言賦值以外,我們同樣可以給靜態(tài)頁面,并使用javascript來獲得相信應(yīng)的參數(shù)值
本例返回值:?ver=1.0&id=6
7,window.location.hash
錨點
本例返回值:#imhere
相關(guān)文章
JavaScript實現(xiàn)鼠標(biāo)經(jīng)過表格某行時此行變色
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)鼠標(biāo)經(jīng)過表格某行時此行變色,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11Three.js?中的屏幕空間環(huán)境光遮蔽SSAO
這篇文章主要為大家介紹了Three.js?中屏幕空間環(huán)境光遮蔽SSAO的原理及實現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04JavaScript代碼實現(xiàn)左右上下自動晃動自動移動
最近幾天做了一個項目,原來是用css3動畫做的,由于不兼容IE,改成用js做了,特此分享給大家,供大家參考2016-04-04uniapp中使用render.js進行openlayers、arcgis等地圖操作實戰(zhàn)指南
renderjs是一個運行在視圖層的js,它比WXS更加強大,它只支持app-vue和h5,下面這篇文章主要給大家介紹了關(guān)于uniapp中使用render.js進行openlayers、arcgis等地圖操作的相關(guān)資料,需要的朋友可以參考下2024-01-01用Javascript實現(xiàn)發(fā)送短信驗證碼間隔功能
這篇文章主要介紹了用Javascript實現(xiàn)發(fā)送短信驗證碼間隔功能,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02javascript中for/in循環(huán)及使用技巧
如果您希望一遍又一遍地運行相同的代碼,并且每次的值都不同,那么使用循環(huán)是很方便的,本篇文章給大家介紹javascript中for/in循環(huán)及使用技巧 ,需要的朋友可以參考下2015-09-09