簡體   English   中英

瀏覽器返回上一頁功能,如果返回則如何重新加載文件?

[英]Browser go back to previous page function, how to reload a document if go back?

這是我的瀏覽器內置返回功能的問題。

假設我有兩個頁面:Page1和Page2。

Page1的作用是先下載.json文件,然后在網頁上打印.json文件的數據。

Page2允許用戶將新數據插入該.json文件。

如果用戶單擊第1頁,則轉到第2頁以插入新數據,然后單擊“返回”按鈕。 .json文件不會更新。 因此,不會顯示剛剛插入的數據。

但是我需要更新新數據。

有解決這個問題的主意嗎?

如果緩存是您的問題,那么您可能想要考慮這個多蟲的,古老的栗子。 將它們添加到您的<head>部分,但要小心,因為其有效性在瀏覽器/版本之間會有所不同。 有關詳細信息,請參見w3.org的鏈接。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

我假設您使用javascript和onload事件下載.json文件並顯示其內容。 問題是使用后退按鈕時不會觸發onload事件。 您可以嘗試使用window.onpopstate事件而不是onload。 當使用后退按鈕導航到網頁時,也會調用onpopstate事件。

function init() {
   //load .json ...
}   
window.onpopstate = init;

可能是json數據正在緩存中,因此即使您到達“ Page1”時再次請求它,您也可能正在讀取它的緩存版本。 也就是說,如果您成功避免了頁面本身的緩存,則仍然可以緩存數據。

克服此類問題的一種簡單易懂的方法是,每次加載json數據時都要更改其URL。 例如,在URL上添加時間戳或其他一些理想的唯一部分:

myjson.json?timestamp = xxx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM