我需要客戶端(使用JavaScript)來使其擁有的頁面失效並且基本上獲取新版本?如何從客戶端無效瀏覽器緩存中的頁面?
我想我可以用頭做的這一切:Invalidating cached content, If-Modified Headers?
如果有沒有辦法讓瀏覽器刷新其當前緩存的版本,具有了進行新的請求(通過一個新的URL)......使可以使用相同的原始URL請求查看更新的內容?
我需要客戶端(使用JavaScript)來使其擁有的頁面失效並且基本上獲取新版本?如何從客戶端無效瀏覽器緩存中的頁面?
我想我可以用頭做的這一切:Invalidating cached content, If-Modified Headers?
如果有沒有辦法讓瀏覽器刷新其當前緩存的版本,具有了進行新的請求(通過一個新的URL)......使可以使用相同的原始URL請求查看更新的內容?
你不能做到這一點與JavaScript,以便解決您的問題或使用POST方法而不是GET或使用nocache random parameter trick:
如果您想了解更多信息,請參見: Is it possible to cache POST methods in HTTP?
如果你想加載當前頁面,您可以這樣做:
location.reload(true);
否則,「傳統」的方式是添加一個隨機的查詢字符串到年底
'...?rnd=' + Math.random();
當您參考該頁面時,將隨機變量添加到結尾。例如:
document.location.href = 'mypage.html?randomVar=454068934';
這將確保一個非緩存版本。我建議使用JavaScript生成的GUID。
我所做的就是在URL中傳遞一個隨機參數。即如果我需要獲取products.php,我打電話給products.php?rand = 23443545。 這種方式緩存不會產生干擾。
哦,好吧。當我開始寫作時,沒有任何答案。慢Typer :-( – 2009-08-19 19:00:04
大聲笑,我也是,我太遲了約10秒... – Zoidberg 2009-08-19 19:39:20
使* current *頁面失效,或者使當前頁面採取的操作確定的其他頁面失效?我也會對這個問題的答案感興趣。 – Roboprog 2009-08-19 19:11:53
我有一個示例測試,請參閱上面的stackoverflow鏈接... – farinspace 2009-08-19 21:01:13