2011-05-17 57 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