2016-03-17 39 views
1

根據我的經驗,當我在瀏覽器中單擊BACK時,上一頁將再次顯示,並顯示起始DOM(至少在發送到其URL的最後一個請求中至少開始*)。當用戶在瀏覽器中返回時,是否有一種跨瀏覽器的方式使上一頁實際從服務器加載內容?

(*爲來自服務器的響應返回;沒有DOM的改變的JavaScript尚未運行)

有沒有一種辦法,以確保前面的頁面加載再次(即另一實際要求其URL)時用戶按BACK按鈕? (我希望答案是HTTP相關的,例如頭文件,並且沒有特定的後端依賴 - 我已經知道如何用我的後端發送頭文件)。

+0

如果必須,請將其放入iframe或使用ajax重新加載內容:P但這可能並不理想。 – DuckPuncher

+0

我目前的工作方法是使用AJAX。它有效,但延遲。 –

+0

你有沒有嘗試過這裏描述的任何東西? http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button看看Nickolay的回答以及接受的答案。有很多有用的信息可以幫助你。如果頁面沒有從緩存中加載,用戶的加載時間會變慢,所以可能會出現一些小的延遲,從而導致可用性問題。 – DuckPuncher

回答

3

添加以下標題來回應這不應該被緩存

Cache-Control:no-store 
Cache-Control:no-cache 
Pragma:no-cache 
Expires:Mon, 26 Jul 1997 05:00:00 GMT 

附註是HTTP 1.0,以防萬一你有這樣的用戶。

+0

他們沒有。我已經有了這些標籤 –

+0

您可以從另一個域,或從同一個網站,只是另一個網頁導航回去?而且我在響應頭中還有一個Cache-Control值,它是無存儲的。 –

+0

大部分時間將是同一個網站(它暗示相同的fqdn) –

相關問題