IE下jquery ajax无法获得最新数据的问题解决(IE缓存)


今天修改一个bug,利用ajax查询数据,在谷歌浏览器下可以获取到最新数据,而在IE中获得是旧数据,无法获得最新的数据,经查资料,才发现时IE缓存再作怪。
发现此ajax请求用的get方式,每次请求的URL一模一样,IE浏览器有个特殊的地方,如果每次请求的URL一样时,就会拿出缓存中已有的数据显示在页面上,并不会再次去查询数据库,所以每次显示的都是旧数据。

解决办法:
那就有思路了,我们可以让它每次请求的URL不一样,可以加一个参数,而且这个参数的值每次都不一样,时间戳最好不过了。

复制代码 代码如下:

url: '{0}/portal/articleManager/getContents?id={1}&date={2}'.format(window.baseUrl, $("#id").val(), new Date())

其中id是有用的参数,而date参数我们不做处理就好了。

查资料得知,用post方式请求可以避免在这个问题,POST被认为是一个变动性访问(浏览器认为POST的提交,必定是有改变的)。
还有一个更简便的方法,设置:
复制代码 代码如下:

cache:false,

前提就是此请求的cache还不存在。



相关阅读:
使用firebug进行调试javascript的示例
JavaScript函数节流概念与用法实例详解
学习在一台新电脑上配置JAVA开发环境
php查看网页源代码的方法
浅析正则表达式-替换原则(.NET) 图文
js实现网页收藏功能
jQuery实现自定义下拉列表
Ajax修改购物车示例
Win8.1系统关机命令变成重启问题解决方法
CentOS 6误删除的boot分区该如何还原恢复
Win10开机声音没有了怎么办?Win10开机声音设置方法图文详解
C#中的is和as操作符区别小结
C#实现客户端弹出消息框封装类实例
JavaScript 32位整型无符号操作示例
快速导航

Copyright © 2016 phpStudy |