对于Ajax在IE上读缓存的问题

最近在开发时遇到了一些关于Ajax的问题,弄了好久终于解决了。

我在开发时,发现调用的Ajax的那个Js在其他浏览器上运行正常,但在IE上运行时就出现了一个很大的问题,现在以我的开发的那个为例。例如:

我在IE中选取地址的时候出现了下列的问题:

在选取时 第一次选过的省份再一次选取的时候不会出现相对应的市级,也就是说省级的值市级的值不会改变(甚至是空的)。



省与市级不对应

(具体操作:现选江苏省,市级显示正常、在选湖南省显示也正常。再选江苏省出现如下状况)


对于这种情况,在第一次运行时不会出现这种情况。而且在其他浏览器上也不会出现这种情况。只有IE才有这个情况。

原因:

出现这种状况的原因是因为,IE浏览器在执行这段Ajax的程序时,由于先前选的省份所对应的市级的数据存在缓存数据,直接返回,没有执行代码,所以没有更新市级数据。才出现了上述的状况。


在打开那个浏览器的控制台会发现上述状况会出现

浏览器返回的结果是304,而正常的应该是200。

解决方法:

既然是由于先前有这样的数据的缓存,那么当传的值不同时也就不存在缓存的问题了。所以在传值的时候加上一个随机变量(如时间变量)例如我的原来传值的语句是这么写的,

content = encodeURI(XXXX+ "_XXXXX?XX="+XX);

修改后的语句是:

content = encodeURI(XXXX+ "_XXXXX?XX="+XX+" &time"=new Date());

这样传过去的值就每次都不一样了。也就不会存在缓存的问题了。

我的这个问题就是这么解决的,希望对大家有点帮助。

第一次写博文,可能有许多的错误,希望各位大神批评和指正。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值