网页前端设计

http://www.86y.org
feedskyQQ邮箱

搜索文章

IE ajax缓存问题

用声音读出全文关注我吧
 2013/10/11 14:36:53 阅读次数:2154

在默认情况下,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"
)
大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:【幸凡前端技术交流群】
0

如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)

阅读全文内容关闭