IE下jquery ajax无法获得最新数据的问题解决(IE缓存)
程序员文章站
2024-01-28 17:27:28
今天修改一个bug,利用ajax查询数据,在谷歌浏览器下可以获取到最新数据,而在ie中获得是旧数据,无法获得最新的数据,经查资料,才发现时ie缓存再作怪。 发现此ajax请...
今天修改一个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还不存在。
发现此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缓存)
-
IE9下Ajax无法刷新数据的缓存问题解决方法
-
Jquery $.getJSON 在IE下的缓存问题解决方法
-
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
-
IE9下Ajax无法刷新数据的缓存问题解决方法
-
Jquery $.getJSON 在IE下的缓存问题解决方法
-
IE下jquery ajax无法获得最新数据的问题解决(IE缓存)
-
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
-
Jquery $.getJSON 在IE下的缓存问题解决方法_jquery
-
IE9下Ajax无法刷新数据的缓存问题解决方法