对于Ajax在IE上读缓存的问题
2014-03-11 17:35
120 查看
最近在开发时遇到了一些关于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());
这样传过去的值就每次都不一样了。也就不会存在缓存的问题了。
我的这个问题就是这么解决的,希望对大家有点帮助。
第一次写博文,可能有许多的错误,希望各位大神批评和指正。
我在开发时,发现调用的Ajax的那个Js在其他浏览器上运行正常,但在IE上运行时就出现了一个很大的问题,现在以我的开发的那个为例。例如:
我在IE中选取地址的时候出现了下列的问题:
在选取时 第一次选过的省份再一次选取的时候不会出现相对应的市级,也就是说省级的值市级的值不会改变(甚至是空的)。
省与市级不对应
(具体操作:现选江苏省,市级显示正常、在选湖南省显示也正常。再选江苏省出现如下状况)
对于这种情况,在第一次运行时不会出现这种情况。而且在其他浏览器上也不会出现这种情况。只有IE才有这个情况。
原因:
出现这种状况的原因是因为,IE浏览器在执行这段Ajax的程序时,由于先前选的省份所对应的市级的数据存在缓存数据,直接返回,没有执行代码,所以没有更新市级数据。才出现了上述的状况。
在打开那个浏览器的控制台会发现上述状况会出现
浏览器返回的结果是304,而正常的应该是200。
解决方法:
既然是由于先前有这样的数据的缓存,那么当传的值不同时也就不存在缓存的问题了。所以在传值的时候加上一个随机变量(如时间变量)例如我的原来传值的语句是这么写的,
content = encodeURI(XXXX+ "_XXXXX?XX="+XX);
修改后的语句是:
content = encodeURI(XXXX+ "_XXXXX?XX="+XX+" &time"=new Date());
这样传过去的值就每次都不一样了。也就不会存在缓存的问题了。
我的这个问题就是这么解决的,希望对大家有点帮助。
第一次写博文,可能有许多的错误,希望各位大神批评和指正。
相关文章推荐
- 心情梳理
- 问道博客园
- CentOS上安装WordPress搭建博客平台
- 基于ffmpeg的Android播放器开源代码
- Mongodb开启与关闭
- Linux内核跟踪之syscall tracer
- ClassLoader理解
- 游戏AI模块设计--行为树
- 模板基于源码的替换而不是基于obj的复用
- oracle菜鸟到大神之路
- IE8中给HTML标签负值报错问题
- Flex使用问题汇总
- Linux内核跟踪之trace框架分析
- 一个好用的测试网速的命令行工具speedtest
- java中数据类型在内存中存储的方式
- Vyatta logo企业级的路由器/防火墙 Vyatta
- 左侧树状菜单代码
- Linux 的xargs命令
- hdu 3481 3482
- Linux内核跟踪之ring buffer的实现