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还不存在。

到此这篇关于IE下jquery ajax无法获得最新数据的问题解决(IE缓存)就介绍到这了。客户不希望一视同仁,他们希望能被个别对待。更多相关IE下jquery ajax无法获得最新数据的问题解决(IE缓存)内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
jquery ajax实现文件上传功能实例代码

SpringMVC+Jquery实现Ajax功能

关于二次封装jquery ajax办法示例详解

ajax实现用户名校验的传统和jquery的$.post方式(实例讲解)

jQuery Ajax的readyState和status的区别和使用详解