这是我在下面的代码中引用的陈述 $.ajaxSetup ({ cache: false});
我有一个生成JSON的PHP脚本。我正在使用这个json:
$.getJSON ("GetDetails.php?id=123",
$("#formname").serialize(),
function(data){
**$.ajaxSetup ({ cache: false});**
//I do all processing with the "data"
});
我已经看到了堆栈溢出中缓存的各种问题,我知道这也会删除缓存
是否有任何方法可以克服缓存。当我使用它时,它仍然是缓存。我在$.documnet.ready()
中使用了相同的语句,但没有用。
答案 0 :(得分:4)
在使用您希望受其影响的AJAX方法之前,$.ajaxSetup()
调用了(您只需要运行一次,而不是每次调用之前),如下所示:< / p>
$.ajaxSetup ({ cache: false});
$.getJSON ("GetDetails.php?id=123", $("#formname").serialize(), function(data){
//I do all processing with the "data"
});
答案 1 :(得分:2)
相反,您可以使用:
$.ajax({
url: "GetDetails.php?id=123",
dataType: 'json',
data: $("#formname").serialize(),
cache: false,
success: function(data){
//I do all processing with the "data"
});
});
这将禁用该特定查询的缓存,因此您可以使用.ajax
调用的正常,缓存启用版本进行其他查询。如果要在整个应用程序中禁用缓存,可以使用Nick的解决方案。
答案 2 :(得分:0)
目前还不清楚你的目标是什么。如果要阻止浏览器缓存JSON数据,则应在其标头中指定PHP脚本。
请参阅http://articles.sitepoint.com/article/php-anthology-2-5-caching