关于ajax请求在IE6,9下的缓存问题

最近的项目中,用到了很多ajax请求,大多用的都是jquery中的函数,如$.getJson(),为的是返回一个json格式的字符串便于后续操作。

这样写,看上去没有什么问题,在IE7、8,opera、fireFox下测试都没有什么问题。

但是,当在IE6和IE9下测试的时候,总是请求不到后台的新数据,然后怀疑是缓存问题,搜寻解决的办法,绝大多数朋友都说给页面的头部加如清楚缓存的代码。

<META HTTP-EQUIV="Pragma"CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control"CONTENT="no-cache">
<META HTTP-EQUIV="Expires"CONTENT="0">
还有在Jsp页面头部加入
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
response.flushBuffer();
%>
这些可能只要是页面刷新的情况下是有作用的,但也只是清除页面的缓存,而不是请求缓存。ajax请求不刷新页面,假如这些没有作用。
调试的时候发现,在IE6下当两次请求的action路劲一样的时候,就会没有进入action中的方法,但是返回数据依然有,不过是旧的。
这样的话,请求的action的路劲后面加入一个随机数,比如:
&.getJson("/login.do?rand="+Math.random(),function(data){});如此一来,每次请求都会进入action,当然缓存问题也就迎刃而解了。
另外还遇到一种情况,就是将上面的$.getJson("/login.do",{rand:Math.random()},function(data){})写成这样竟然不起作用,只有向上面一样写,才可以。
难道这是偶然情况。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值