Web前端 教程 ·

IE下ajax请求获得缓存数据的解决方法

在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据)。在做一个项目时碰到了这个问题,在此记录几种解决方案,实际使用第一个方案时顺利解决了问题。

1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")

2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")

3、在URL后面加上一个随机数: "?rand=" + Math.random()

4、在URL后面加上时间戳:"?nowtime=" +new Date().toTimeString()

5、如果是使用jQuery,可以在开始的时候设置,清除缓存,$.ajaxSetup({cache:false})

参与评论