我使用的getJSON来从服务器端的结果,但面临的浏览器缓存的问题。 我想缓存是假的。 我想只是我的getJSON调用之前用这个。
$.ajaxSetup({
cache: false
})
但我没有得到预期的结果。 它仍然显示旧的结果。 任何帮助将不胜感激。
我还发现了一些其他的解决方案,如使用阿贾克斯,但我真的不希望使用它。
我使用的getJSON来从服务器端的结果,但面临的浏览器缓存的问题。 我想缓存是假的。 我想只是我的getJSON调用之前用这个。
$.ajaxSetup({
cache: false
})
但我没有得到预期的结果。 它仍然显示旧的结果。 任何帮助将不胜感激。
我还发现了一些其他的解决方案,如使用阿贾克斯,但我真的不希望使用它。
您的代码只需要一个触发启用它。
这将允许你在今后所有的AJAX禁用缓存
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
希望能帮助到你 :)
您可以使用这个,这将在全球范围禁用缓存:
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
或者,而不是$.getJSON
,禁用只是这种请求的缓存:
$.ajax({
cache: false,
url: "/path/to.json",
dataType: "json",
success: function(data) {
...
}
});
semente的和bonesnatch的答案是正确的,但如果你想使用$ .getJSON和其他地方利用它的缓存(你不想设置缓存为false,所有呼叫),但你只想胸围在缓存中单呼,你可以注入时间戳到$ .getJSON的数据属性()。 通过增加一个独特的价值,以请求的查询字符串,请求将永远是独一无二的,而不是由浏览器缓存 - 你总是会得到的最新数据。
龙版本:
var ts = new Date().getTime();
var data = {_: ts};
var url = '/some/path.json';
$.getJSON(url, data);
在所有的一个版本:
$.getJSON('/some/path', {_: new Date().getTime()});
既导致以下请求:
/some/path.json?_=1439315011130
其中在最后的数字是该代码被调用,因此将永远是独一无二的时刻的时间戳。