2010-11-10 42 views
38

當用戶按下後退按鈕時,我需要強制瀏覽器從服務器重新加載上一頁。如何停止高速緩存中的鉻

我已經添加了以下到我的響應頭:

Cache-Control: no-cache, must-revalidate 
Expires: -1 

這似乎爲大多數的瀏覽器工作,而不是谷歌Chrome瀏覽器在返回緩存的結果堅持。

那麼有沒有人知道我強迫瀏覽器從用戶按下後退按鈕時從服務器頁面?

謝謝。

+1

如果您對停止字段內容緩存感興趣,請查看[this](http://stackoverflow.com/a/2699400/669677)! – 2012-06-04 12:47:07

+3

9000觀點和mods稱這是「一個非常狹窄的情況」。 – AaronLS 2012-11-13 04:15:44

回答

34

根據鉻回購中的this bug report,用戶發現使用no-store而不是no-cache會將其修復爲鉻。

+4

錯誤或功能? – 2010-11-10 16:55:29

+3

哈哈,讓我們把它稱爲'記號的問題'=] – superfro 2010-11-10 16:56:41

+0

但是其他瀏覽器呢。將添加此打破其他瀏覽器? – 2010-11-10 17:12:33

0

這是不正確的,但也許你可以使用Javascript歷史對象來確定當前頁面是否是列表中的最後一頁?如果沒有,則按下後退按鈕。

看到這個參考:http://www.exforsys.com/tutorials/javascript/javascript-history-object-properties-and-methods.html

當然,真正的解決辦法是在這樣一種方式的前進/後退按鈕使用的實際工作,他們都應該順便構建應用程序。

+4

除非沒有別的選擇,否則我不會太樂意執行這個操作,這對我的喜好來說有點冒險。問題是當用戶按下後,頁面重新加載是後退按鈕的工作方式。例如,如果我在網上銀行,並且已經註銷,我不希望人們按回來查看我的帳戶詳細信息。我想要重新加載頁面。我們的應用程序也有類似的情況,信息可能已更改,因此我們需要動態重新加載。 – 2010-11-10 17:23:39

+0

是的,它是hackish,我不推薦它,除非它是你唯一的選擇。這只是我想到的。但是,您應該記住這些向前和向後按鈕的用途。網站原本是用於文件/網頁,而不是應用程序。雖然根據superfro的建議添加'no-store'是個不錯的主意,但您也應該建議您的用戶在退出後關閉瀏覽器,就像任何其他銀行或安全網站一樣。 – Brad 2010-11-10 20:29:02

+0

對不起,聲音突然。我很欣賞這個建議,如果我沒有找到更好的解決方案,我會使用它 – 2010-11-11 00:10:59