js重新整理頁面location.reload()用法

韓師學子--胖佳發表於2019-03-12

              js重新整理頁面location.reload()用法

 

轉載:https://blog.csdn.net/sinat_17775997/article/details/80263724
https://blog.csdn.net/M_Jack/article/details/80749585

 

在javascript程式設計中,多使用location.reload實現頁面重新整理。

例子:

window.location.href=window.location.href; 
window.location.reload; 

經測試,這兩句在某些情況下可以代替location.reload(true);
而不會出現重試對話方塊達到重新整理的效果。

在js中實現重新整理頁面的方法有很多種,在js中有一個location.reload()函式,它就可以實現我們想要的功能。 

reload() 方法用於重新載入當前文件。 如果該方法沒有規定引數,或者引數是 false,它就會用 HTTP 頭 If-Modified-Since 來檢測伺服器上的文件是否已改變。如果文件已改變,reload() 會再次下載該文件。如果文件未改變,則該方法將從快取中裝載文件。這與使用者單擊瀏覽器的重新整理按鈕的效果是完全一樣的。

我們都知道客戶端瀏覽器是有快取的,裡面存放之前訪問過的一些網頁檔案。 其實快取裡儲存的不只是網頁檔案,還有伺服器發過來的該檔案的最後伺服器修改時間。 If-Modified-Since是標準的HTTP請求頭標籤,在傳送HTTP請求時,把瀏覽器端快取頁面的最後修改時 間一起發到伺服器去,伺服器會把這個時間與伺服器上實際檔案的最後修改時間進行比較。 如果時間一致,那麼返回HTTP狀態碼304(不返回檔案內容),客戶端接到之後,就直接把本地快取文 件顯示到瀏覽器中。 如果時間不一致,就返回HTTP狀態碼200和新的檔案內容,客戶端接到之後,會丟棄舊檔案,把新檔案 快取起來,並顯示到瀏覽器中。 我們知道JSP頁面最後都必須編譯成HTML檔案,你的JSP頁面 時間 每次請求的都不一樣 ,等於修改了檔案 所以快取和伺服器的檔案的修改時間是不一致的 ,就會重新重新整理了。

例1,重新整理當前頁面

<script> 
window.location.reload(); 
</script>

 例2,JS實現重新整理iframe的方法 
用iframe的name屬性定位

<input type="button" name="Button" value="Button" onclick="document.frames('ifrmname').location.reload()"> 
或 
<input type="button" name="Button" value="Button" onclick="document.all.ifrmname.document.location.reload()">

例3,首先,定義一個iframe

<iframe method="post" id ="IFrameName" src="aa.htm" ></iframe>

aa.htm頁面的內容: 

<input type ="button" value ="重新整理" onclick ="aa()"/> 
function aa() { 
//parent.location.replace(parent.location.href);//伺服器端重新建立頁面 
parent.document.location.reload();//相當於F5 
//window.location.href(parent.location.href);//iframe內容重定向 
}

注意:
window.location.reload;
重新整理時如果提交資料的動作,則會出現對話方塊!

解決辦法:

window.location.href=window.location.href; 
window.location.reload;

重新整理父視窗(這種寫法不會顯示對話方塊。):

window.opener.location.href=window.opener.location.href; 
window.opener.location.reload(); 

 

相關文章