js 頁面刷新location.reload和location.replace的區別小結


在實際應用的時候,重新刷新頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。下面有一些相關的內容,大家看完了就會有更多的收獲。

 

首先介紹兩個方法的語法: 
reload 方法,該方法強迫瀏覽器刷新當前頁面。 
語法: location.reload([bForceGet]) 
參數: bForceGet, 可選參數, 默認為 false,從客戶端緩存里取當前頁。true, 則以 GET 方式,從服務端取最新的頁面, 相當於客戶端點擊 F5("刷新") 

replace 方法,該方法通過指定URL替換當前緩存在歷史里(客戶端)的項目,因此當使用replace方法之后,你不能通過“前進”和“后退”來訪問已經被替換的URL。 
語法: location.replace(URL) 
在 實際應用的時候,重新刷新頁面的時候,我們通常使用: location.reload() 或者是 history.go(0) 來做。因為這種做法就像是客戶端點F5刷新頁面,所以頁面的method="post"的時候,會出現“網頁過期”的提示。那是因為Session的安全 保護機制。可以想到: 當調用 location.reload() 方法的時候, aspx頁面此時在服務端內存里已經存在, 因此必定是 IsPostback 的。如果有這種應用: 我們需要重新加載該頁面,也就是說我們期望頁面能夠在服務端重新被創建, 我們期望是 Not IsPostback 的。這里,location.replace() 就可以完成此任務。被replace的頁面每次都在服務端重新生成。你可以這么寫: location.replace(location.href) 

下面是相關的應用與知識點: 
window.location.href 
window.top.location.replace("http://www.jb51.net") 
top.location.href("http://www.jb51.net") 
window.navigate ("http://www.jb51.net") 
Html: 
<meta http-equiv="Refresh" content="0; url=http://baidu.com/" > 
--------------------------------------- 
URL即:統一資源定位符 (Uniform Resource Locator, URL) 
完整的URL由這幾個部分構成: 
scheme://host:port/path?query#fragment 
scheme:通信協議 
常用的http,ftp,maito等 
host:主機 
服務器(計算機)域名系統 (DNS) 主機名或 IP 地址。 
port:端口號 
整數,可選,省略時使用方案的默認端口,如http的默認端口為80。 
path:路徑 
由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。 
query:查詢 
可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術制作的網頁)傳遞參數,可有多個參數,用"&"符號隔開,每個參數的名和值用"="符號隔開。 
fragment:信息片斷 
字符串,用於指定網絡資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。(也稱為錨點.) 
對於這樣一個URL 
http://www.jb51.net:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere 

我們可以用javascript獲得其中的各個部分 
1, window.location.href 
整個URl字符串(在瀏覽器中就是完整的地址欄) 
本例返回值: http://www.jb51.net:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere 
2,window.location.protocol 
URL 的協議部分 
本例返回值:http: 
3,window.location.host 
URL 的主機部分 
本例返回值:www.jb51.net 
4,window.location.port 
URL 的端口部分 
如果采用默認的80端口(update:即使添加了:80),那么返回值並不是默認的80而是空字符 
本例返回值:"" 
5,window.location.pathname 
URL 的路徑部分(就是文件地址) 
本例返回值:/fisker/post/0703/window.location.html 
6,window.location.search 
查詢(參數)部分 
除了給動態語言賦值以外,我們同樣可以給靜態頁面,並使用javascript來獲得相信應的參數值 
本例返回值:?ver=1.0&id=6 
7,window.location.hash 
錨點 
本例返回值:#imhere


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM