2009-10-26 74 views
3

我有一個頁面,它有一些可編輯的功能,它們在編輯時通過Ajax進行更新。有些值存儲在cookie中,以便在加載頁面時加載它們。如果用戶進行了更改,然後轉到其他頁面並單擊後退按鈕返回,則原始頁面將從緩存中加載而沒有新值。如果用戶刷新頁面,則會從Cookie重新加載更改,並顯示正確的值。當頁面被動態修改時,我可以使緩存無效嗎?我希望能夠利用瀏覽器緩存,所以我不希望讓頁面始終使瀏覽器緩存無效,只要我能幫助它。任何建議表示讚賞。如何通過Ajax修改頁面時使緩存失效?

回答

0

您需要在HTTP響應中設置緩存標頭。

取決於你的技術,你可以做的是,在網絡服務器(例如,基於相關網址),或在你的代碼(如使用設置你的框架或一些API調用的頭)。

具體做法是:

no-cache 
expires 

你想要的人。

+1

感謝您的迴應傑森。 我可以通過設置標題來解決這個問題,這樣頁面就不會被瀏覽器緩存,但大部分時間我們都希望允許瀏覽器緩存發生。只有在通過Ajax更改內容的情況下,我們纔想使頁面的瀏覽器緩存無效。除非重新加載頁面,否則Ajax調用不會更新瀏覽器緩存,因此如果您離開頁面並通過瀏覽器返回按鈕返回,則不會顯示更改。 再次感謝 – Andre 2009-10-28 17:55:01

1

您可以首先通過Ajax加載數據。

$(document).ready(function(){ 
    $.get("your_ajax_url"); 
}); 

然後當你點擊後退按鈕在Ajax調用重複和在服務器端發送與正確設置緩存或Etag頭的HTTP響應。

0

,你可以這樣寫

$.ajax(
    { 
     url: 'Serverpage name' 
     cache: false, 
     type: 'POST', 
     success: function(msg) 
     { 
     }); 
    }); 

這裏設置緩存:假,將不設置任何緩存。

相關問題