【发布时间】:2011-09-14 20:04:36
【问题描述】:
我正在使用 $.getJSON 执行对最新数据库更新的 ajax 调用。 Chrome 和 Firefox 工作正常,但 IE7 使用 IE7 时,服务器将响应我清除 IE7 缓存后的第一次更新。
有什么想法吗?
【问题讨论】:
我正在使用 $.getJSON 执行对最新数据库更新的 ajax 调用。 Chrome 和 Firefox 工作正常,但 IE7 使用 IE7 时,服务器将响应我清除 IE7 缓存后的第一次更新。
有什么想法吗?
【问题讨论】:
可以使用 $.ajax 来代替这些选项。注意 'cache: false':
$.ajax({
url: url,
dataType: 'json',
cache: false,
data: data,
success: callback
});
【讨论】:
我以前经历过。您可能希望添加一个每次都不同的新参数。像这样的:
var ts = new Date().getTime(); //get the current timestamp
//add the ts as a parameter to your call along with all your other data.
这样每个请求都是不同的,IE不会缓存它。
【讨论】:
IE 有缓存 AJAX 调用响应的坏习惯。
向您的查询字符串添加一个虚拟参数,该参数在您每次进行 AJAX 调用时都会更改,然后您将获得新的结果。
更新:如果你使用 Mootools,那么你可以have this done automatically。寻找noCache 选项。
【讨论】:
这是缓存的问题,IE 缓存您的数据,以便后面的调用不会从服务器获取结果,而是在 IE 缓存中获取结果
如果你的所有 ajax 都使用 jQuery,那么你应该先运行它:
$.ajaxSetup({
cache: false
});
如果设置为false,它将强制浏览器不缓存请求的页面。
【讨论】: