jquery ajax缓存问题解决方法小结

今天在作一个ajax数据提交功能开始利用get方式一直发现提交的数据都是同样,返回的数据也好久不刷新了,这个我知道是ajax缓存问题,后来在网上整理了一些ajax缓存问题解决方法,下面给你们分享一下。 解决方法: 1html

 
今天在作一个ajax数据提交功能开始利用get方式一直发现提交的数据都是同样,返回的数据也好久不刷新了,这个我知道是ajax缓存问题,后来在网上整理了一些ajax缓存问题解决方法,下面给你们分享一下。
 

解决方法:ajax

一、给请求连接加随机数,若是用的是jQuery,直接设置: $.ajaxSetup({cache: false});缓存

二、把type改为post,并随便设置设置一个参数data: 'a=b'(必定要设置参数,不然仍然会被cache)dom

三、说说生成不同的数,就用随机数 Math.random();或者或者时间戳 + new Date();post

例子测试

 代码以下  

$.ajax({
    type:"GET"
    url:'test.html',
    cache:false,
    dataType:"html",
    success:function(msg){
        alert(msg);
    }
});url

或者spa

$.ajax({
    type:"GET"
    url:'test.html?'+Math.random(),
    cache:false,
    dataType:"html",
    success:function(msg){
        alert(msg);
    }
});htm

后来在网上找到了不少AJAX GET请求会被缓存解决方法总结一下ci

一、在服务端加 header(“Cache-Control: no-cache, must-revalidate”);
二、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”0″);
三、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”);
四、在 Ajax 的 URL 参数后加上 “?fresh=” + Math.random(); //固然这里参数 fresh 能够任意取了
五、第四种方法和第三种相似,在 URL 参数后加上 “?timestamp=” + new Date().getTime();
六、用POST替代GET:不推荐

一聚小编提示您:关于ajax缓存问题咱们上面的方法都有简单测试都是有效的你们根据本身喜欢选择吧,固然有时咱们是须要缓存功能有时不须要你们能够根据实际状况来设置。

相关文章
相关标签/搜索