在默认情况下,IE会缓存相同地址ajax请求的结果。IE的第一次ajax请求会发送到服务器端处理,如果后续的请求的参数与第一次的一样,浏览 器会直接返回缓存的结果而不是去服务器获取。有时候我们希望获取实时的数据,那么该如何解决这个问题呢?只要在ajax请求中加一个时间戳参数或随机参数 就可以了。jQuery ajax中提供了一个cache属性来解决浏览器的缓存问题。
cache的默认值为true, 如果设为false, 它会强制请求的页面不会被浏览缓存。设置cache为false时会在query string中追加一个"_=[时间戳]"的参数。
$.ajax({
url: "your url",
type: "GET",
dataType: "json",
cache: false, // 强制浏览器不缓存页面
data: { "action": "getinfo" },
success: function(data) {
// TODO code here.
}
});
如果使用$.get或$.post方法,这两个方法没有cache这个参数,我们只要加一个随机参数即可,如r=Math.random().
$.get(
"your url",
{ "action": getinfo, "r": Math.random() },
function(data) {
// TODO code here.
},
"json"
)