ie8下ajax缓存严重问题

在使用jquery ajax异步调用数据,第一次可以正常返回值,后面就一直不会执行后台,总是返回第一次访问的结果,即使使用ctrl+F5,都不能得到最新的数据。测试后发现,是ie8缓存了第一次获取的结果。造成这个问题的原因是因为IE8会默认缓存这时的Get方式获取的数据,所以第二次不会提交到后台而解决的方法也很简单,可以在每个request中设置cache:false。或者在全局中设置$.ajaxSetup({ cache: false })。浏览器缓存还是有一些好处的,比如: 减少了冗余的数据传输,节省了网费;减少了服务器的负担, 大大提高了网站的性能;加快了客户端加载网页的速度等等。所以只需要针对ie8设置就可以了。我是这样实现的:if($.browser.msie && $.browser.version === ‘8.0‘){  $.ajaxSetup({ cache: false });}
 
 

 

时间: 2024-10-18 04:33:58

ie8下ajax缓存严重问题的相关文章

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

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

IE7、IE8下ajax加载内容样式无法生效的解决办法

最近做一个项目,采用JQuery的Ajax进行页面局部替换显示,在FF里面显示都正常,但是在IE8下面走样,只能显示部分效果.一开始我也怀疑是不是Ajax返回的HTML内容格式.编码等出了问题,删除部分页面内容进行测试,依然在IE8下"不屈不挠"......然后开始百度.AOI. 最后这句话解决问题:把一个dom元素的display状态切换一下,可以让IE重新渲染和加载css. 网友的一段代码: <script type="text/javascript"&g

IE浏览器下AJAX缓存问题导致数据不更新的解决办法

一直知道使用ajax的时候,有的时候会出现数据缓存的问题,当时也没有深究,就是所有的简单粗暴的全部加上cache:false,或者使用在url处加上随机时间函数 今天无意间看见了为什么会出现缓存的原因记录下 注:通过AJAX请求后台时,当参数相同,IE浏览器会从缓存中取值而非从重新请求服务器.其他使用非IE内核的浏览器并无此问题. 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱, 即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会

IE8下ajax兼容问题

1 function crossDomainAjax(url, successCallback) { 2 3 // IE8 & 9 only Cross domain JSON GET request 4 if ('XDomainRequest' in window && window.XDomainRequest !== null) { 5 6 var xdr = new XDomainRequest(); // Use Microsoft XDR 7 xdr.open('get

Jquery ajax传递xml方式在ie8下兼容问题

要写的东西是一个工作日志页面,要求不能分页,一天写入一条数据.考虑到服务器的性能问题,使用一次性全从数据库中读出数据在方法,如果时间长了,页面在加载的时候会很慢,而且会造成浪费.所以我采用ajax技术,一次读3条数据,随着滚动条滑动加载.这样就能很好的降低服务器的压力,虽然项目不大. 项目提交的时候才发现,我写的工作日志页面居然在ie8下不能正常显示.按理来说,Jquery应该已经帮我解决了ajax创建xmlDOM时的兼容性的问题,仔细排查了以后发现是ie8对xml解析的问题. 找了资料后解决办

ie8下缓存

今天调试一个easyui下的datagrid是先从getJson中读取服务器数据,第一次时可到服务器上读,但以后就不会了,从网上找到相应网站 $.getJSON("/Web/Customer/Search/GetViewCount?="+new Date().getTime(), { ids: viewcountIdsStr }, function (data) {<br> //todo<br>}); 加了个?="+new Date().getTime

IE8 ajax缓存问题

娘希匹,又遇到缓存问题了. 下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题. $.ajax({ url:dataUrl, data:encodeURI(currentjsonform), dataType:'JSON', async:false, success:function(item){ debugger; .... } }); 经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题.尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调

关于IE下AJAX的问题探讨

今天JS练手的时候,想封装一个发送AJAX请求的对象,当然,是想要兼容全浏览器的.代码如下: var Ajax = { xhr: null, callback: null, XMLHttp: function() { var xmlhttp; //标准浏览器 if(window.XMLHttpRequest) { try { xmlhttp = new XMLHttpRequest(); } catch(e) { alert('Unknown Ajax Error'); //console.lo

比较全的Ajax缓存问题汇总

项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了.第二天,有人向我报告错误:说是只有第一次读取的值正常,后面的值都不正常:我调试了一下 ,确实有这样的问题,查出是因为AJAX缓存的问题.解决办法有如下几种:澳门赌场有哪些 在服务端加 header("Cache-Control: no-cache, must-revalidate");(如php中) 在ajax发送请求前加上 anyAjaxObj.setRequestHeade