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

在實際應用的時候,從新刷新頁面的時候,咱們一般使用: location.reload() 或者是 history.go(0) 來作。下面有一些相關的內容,你們看完了就會有更多的收穫。javascript

首先介紹兩個方法的語法: 
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 
錨點 
本例返回值:#imherehtml

相關文章
相關標籤/搜索