如何在JQuery中为getJSON设置cachingfalse?
我正在使用getJSON从服务器端获取结果,但面临浏览器caching问题。 我想caching是假的。 我试图在我的getJSON调用之前使用它。
$.ajaxSetup({ cache: false })
但是我没有得到预期的结果。 它仍然显示旧的结果。 任何帮助将不胜感激。
我还确定了一些其他解决scheme,如使用.ajax,但我真的不想使用它。
你的代码只需要一个触发器来启用它。
这将允许您在将来的所有ajax中禁用caching
$(document).ready(function() { $.ajaxSetup({ cache: false }); });
希望它有助于:)
你可以使用这个,这将全局禁用caching:
$(document).ready(function() { $.ajaxSetup({ cache: false }); });
或者,而不是$.getJSON
,只为这样的请求禁用caching:
$.ajax({ cache: false, url: "/path/to.json", dataType: "json", success: function(data) { ... } });
semente的和bonesnatch的答案是正确的,但是如果你想使用$ .getJSON和其他地方利用它的caching(你不想为所有的调用将caching设置为false),但是你想要仅仅为了单次调用,您可以将时间戳注入$ .getJSON()的data属性中。 通过向请求的查询string添加一个唯一值,请求将始终是唯一的,不会被浏览器caching – 您将始终获得最新的数据。
长版本:
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
最后的数字是代码被调用时的时间戳,因此总是唯一的。