IE浏览器下ajax缓存导致数据不更新的解决方法

简介: 摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/ 最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,最后在网上查了些资料终于解决了IE浏览器下的问题。

摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/

最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,
IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,最后在网上查了些资料终于解决了IE浏览器下的问题。 方法就是在你的请求的URL 后面设置个可变的参数,比如: Java代码 $.getJSON(
"sortShow!sortShow?time="+new Date().getTime(),function(){}); 开始我是直接这样写的 Java代码 $.getJSON("sortShow!sortShow,function(){}); 所以刷新的时候IE 会显示上次的缓存,因此你必须提交新的数据,所以在后面加了个时间参数,即使你的后台没设置这个参数,但也不会报错。
此时IE会重新向后台发出请求,类似的还有 math.random这个函数可以用。

 另一文:http://www.jb51.net/article/32568.htm

在做ajax页面无刷新添加的时候,IE下遭遇Ajax缓存,因为刚开始并不知道IE有这个坏毛病,折腾好久,终于解决问题。 

总结一下解决办法: 
在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,
即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,
而post方式因为参数的不同,不会产生这个问题]而FF下不会出现这种情况。为了不受缓存影响,可以这样做: IE访问策略: Internet选项
--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问网页时也可以

在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数
在javascript发送的URL后加上 t=Math.random() 例如这样:
URL+"&"+"t="+Math.random();//或者new Date(); 在 URL 参数后加上 "?timestamp=" + new Date().getTime(); 最好的方法: $.ajaxSetup({cache:false}) 这样页面中所有的ajax请求时,都执行这个。就不必改已经完成的N个接口

 

相关文章
|
3月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
3月前
|
Web App开发 JSON 前端开发
Ajax实现动态及时刷新表格数据
Ajax实现动态及时刷新表格数据
|
3月前
|
XML 前端开发 JavaScript
使用 AJAX 提升网页数据的动态交互
使用 AJAX 提升网页数据的动态交互
|
2月前
|
Web App开发 JSON 数据格式
【Azure Developer】浏览器查看本地数据文件时遇见跨域问题(CORS)
Access to XMLHttpRequest at 'file:///C:/Users/.../failedrequests.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge. reportdata/failedrequests.json:1 Fail
|
2月前
|
前端开发 JavaScript Java
Spring创建Ajax和接受Ajax数据-spring20
Spring创建Ajax和接受Ajax数据-spring20
|
2月前
|
安全 前端开发 JavaScript
CORS是W3C标准,解决浏览器同源策略限制的跨域数据访问。
【6月更文挑战第27天】CORS是W3C标准,解决浏览器同源策略限制的跨域数据访问。它通过服务器在HTTP响应头添加`Access-Control-Allow-*`字段允许特定源请求。简单请求无需预检,非简单请求会发OPTIONS预检请求。服务器配置CORS策略,客户端正常请求,浏览器自动处理。若未正确配置,浏览器将阻止响应,保障安全。
30 0
|
2月前
|
PHP
php+ajax传file文件数据
php+ajax传file文件数据
24 0
|
3月前
|
JSON 前端开发 数据格式
Ajax传递json数据
Ajax传递json数据
|
JSON JavaScript PHP
Thinkphp学习日记:jQuery_ajax数据提交
<p style="margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:Verdana,Arial,Helvetica,sans-serif; line-height:18px"> 最近在玩Thinkphp,废话不多说,说正事.</p> <p style="margin:10px auto; paddin
1406 0
|
9月前
|
XML 前端开发 JavaScript
什么是Ajax和jquery
什么是Ajax和jquery
70 0