IE8 ajax缓存问题

娘希匹,又遇到缓存问题了。

下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。

            $.ajax({
                url:dataUrl,
                data:encodeURI(currentjsonform),
                dataType:‘JSON‘,
                async:false,
                success:function(item){
                    debugger;
                   ....
                }
            });

经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题。尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调试时,没有反应,才发现是这个问题!!!!IE8肯跌啊。

但是 奇怪的是,很多地方都是这样的代码,为什么只有这里被缓存,而其他地方没有缓存问题呢?

解决方法:

$.ajaxSetup({ cache: false });

还可以在 url 后面加上时间戳等方法。

时间: 2024-11-03 21:51:36

IE8 ajax缓存问题的相关文章

[MISC] JQUERY注意问题之ie8 post缓存

JQUERY 注意问题之 ie8 post缓存 1.设置AJAX,不存缓存 $.ajaxSetup ({ cache: false //关闭AJAX相应的缓存 }); 2.POST的URL加上随机参数 3. 网页上加上<META HTTP-EQUIV="pragma" CONTENT="no-cache"><META HTTP-EQUIV="Cache-Control" CONTENT="no-cache,must-r

Ajax缓存

// Ajax缓存 请求一次,页面不会在次访问这个方法,会读取缓存数据$(".routeTips").live("mouseenter",function () {    var $this = $(this);    var billcode = $(this).attr("data-sitecode");    var key = "A027" + billcode;    if (isCache) {        if

比较全的Ajax缓存问题汇总

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

对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache

虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或其它参数.同时在工作中,我们还会发现,有一些ajax请求的数据,对实时性要求不高,即使我们把第一次请求到的这些数据缓存起来,然后当相同请求再次发起时直接拿之前缓存的数据返回也不会对相关功能有影响,通过这种手工的缓存控制,减少了ajax请求,多多少少也能帮助我们提高网页的性能.本文介绍我自己关于这两方

Ajax缓存解决办法【转】

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

Ajax缓存解决办法

转载一篇文章,在做聊天室的过程中困惑我很久的一个问题.呵呵,太感谢作者了.原文如下: 项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了.. 第二天,有人向我报告错误:说是只有第一次读取的值正常,后面的值都不正常:我调试了一下 ,确实有这样的问题,查出是因为AJAX缓存的问题:解决办法有如下几种:       1.在服务端加 header("Cache-Control: no-cache, must-revalidate");(

jquery是如何清除ajax缓存的

大家都知道万恶的IE在ajax中往往只读取第一次ajax请求时候的数据,其余时候都是从cache提取数据,(太懒了T_T).原生的JS清除ajax缓存的方法多,但是终觉有点繁琐,如果是用jquery的同学,就设置一个参数就OK了,那就是cache: false,比如: $.ajax({ url: "mms-draft!getMmsDraftList", cache: false, dataType : "json", data:{ //some parameters

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

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

ie8下缓存

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