jquery的ajax的缓存问题

       以下主要描述如何解决Jquery ajax的缓存问题。

      在使用jquery进行ajax操作时,如果Get请求的参数不变化,而且IE浏览器设置缓存不是每次访问网页时(IE工具->internet选项->浏览历史记录下的设置->检查所存网页的较新版本),则可能会出现程序不经过后台,直接从浏览器缓存里读数据的情况。

可以有三种解决方法:
1、在请求的参数后面加上时间,如:
$.ajax({
    type : "get",
    url : "http://search.json?t="+new Date(),
    dataType : "json",
    success : function(json) {
    }
});
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。

2、 在ajax请求时候加上cache:false的参数,如:
$.ajax({
    type : "get",
    url : "http://search.json",
    dataType : "json",
    cache:false,
    success : function(json) {
    }
});
cache设置为 false 将不会从浏览器缓存中加载请求信息。

3、将ajax请求类型改为post,如:
$.ajax({
   type : "post",
   url : "http://search.json",
   dataType : "json",
   success : function(json) {
   }
});
请求类型改为post, 将不会从浏览器缓存中加载请求信息。

备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值