加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:39:22 所属栏目:百科 来源:网络整理
导读:最近在开发时遇到了一些关于Ajax的问题,弄了好久终于解决了。 我在开发时,发现调用的Ajax的那个Js在其他浏览器上运行正常,但在IE上运行时就出现了一个很大的问题,现在以我的开发的那个为例。例如: 我在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());

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读