2011-05-17 61 views
0

我有一個BIG問題。 我正在創建一個完全在Ajax,jQuery 1.3.2 + PHP中創建的應用程序。 在每個瀏覽器中,一切正常。 但IE仍然使用臨時文件,並且不會顯示javascript和jQuery代碼所做的更改,直到我手動刪除臨時文件! 這是不可思議的! 我該如何解決這個問題? 請幫幫我! IE會讓我瘋狂! 謝謝IE Ajax臨時文件問題

+0

瀏覽器是* *預期緩存HTTP響應,除非服務器要求,否則。請參閱http://www.fiddler2.com/redir/?id=httpperf和http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer- 9.aspx – EricLaw 2011-05-18 04:23:03

回答

1

在我的簡短看來,我沒有看到這個重複,但我希望有一個。

但是這是件好事:

how to clear the cache data when using ajax?

當你回到你的要求用這個頭:

<?php header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

當你讓你的要求,你可以使用這個:

var url="UI/RoomDetailsView.jsp?ignoreMe=" + new Date().getTime(); 

基本上,關閉服務器緩存並添加一個參數這會有所不同,所以服務器會看到不同的東西,而不使用緩存版本。

+0

您不應該發送後檢查或預檢;他們不會做你的想法。單獨使用no-cache會很多。 http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx – EricLaw 2011-05-18 04:22:06

1

jQuery有一個全局設置,通過在每個AJAX請求的末尾附加一個隨機字符串來繞過緩存。由於文件名現在是隨機的,因此不能調用緩存版本。在任何頁面上插入以下內容,並解決您的緩存問題。

$.ajaxSetup ({ 
    cache: false 
}); 
+0

爲我工作!謝謝 – Migs 2012-11-05 17:06:59