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

前端之家收集整理的这篇文章主要介绍了对于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());

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

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

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

原文链接:https://www.f2er.com/ajax/165158.html

猜你在找的Ajax相关文章