`
maxiow
  • 浏览: 12934 次
文章分类
社区版块
存档分类
最新评论

Ajax与IE6缓存问题解决方案

 
阅读更多

(转载自http://wgllz.iteye.com/blog/1341445   -wgllz)

在IE6下显示修改前的值。但在其他浏览器和IE7、IE8下,没有这个问题。 
原因:用ajax请求时,如果出现重复的URL,浏览器不会向服务器发送请求,而是根据之前相同的URL请求结果返回。原因就在于之前的请求及结果已经保存在了 
缓存里,如果遇到相同URL时,结果是直接从缓存里取得。

 

解决办法: 
1、设置IE6中工具-internet选项-Internet临时文件-设置-检查每次网页的较新版本-设置为每次访问此页时检查。 
2、在IE发送ajax数据时,发送一个随机时间戳。即只要让每次请求的URL不一样就可以了,比如每次请求时在URL中加上时间的毫秒数或随机数(new Date().getTime()或者Math.Random() 
)。 
另外,网上还有很多解决方法: 
1.送请求前加上 
XMLHttpRequest.setRequestHeader("If-Modified-Since","0") 
或者用post方法提交 
2.服务器端禁用缓存(只是禁止了服务端缓存,不能禁止ajax缓存) 

response.setHeader("Pragma","No-cache"); 
response.setHeader("Cache-Control","no-cache"); 
response.setDateHeader("Expires", 0);

 
以上说的都对,但有一个更简单的办法,就是ajax请求时,设缓存为false

 

$.ajax({

url: 'tStrategyBase.do?method=checkStrategyStates&id='+id,

cache:false,

dataType: 'html',

success: function(data){

 ...

}

})

 

cache:是否缓存,其实就是在URL加随机数

分享到:
评论

相关推荐

    ajax调用中ie缓存问题解决方法

    本文实例分析了ajax调用中ie缓存问题解决方法。分享给大家供大家参考,具体如下: ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有...

    IE下Ajax缓存问题的快速解决方法(get方式)

    1.客户端解决方案IE访问策略:Internet选项–浏览历史记录–设置– Internet 临时文件的选项改为每次访问网页时也可以 1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送的URL后加上t...

    如何解决Ajax请求结果的缓存问题说明

    在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案。目录 一、问题重现 二、通过为URL地址添加后缀的方式解决问题 三、通过JQuery的...

    ajax缓存问题解决途径

    我用PHP和Ajax结合,添加数据之后,刷新前台页面,数据没有变化。我改动PHP动态脚本,只有重新找开IE再输入地址,才能看到效果。... 您可能感兴趣的文章:AJAX 缓存问题的两种解决方法(IE)防止jQuery ajax Load

    IE9下Ajax无法刷新数据的缓存问题解决方法

    使用jQuery的getJSON从后台定时获取数据并刷新界面,使用以下方法时,在Chrome,Firefox下没问题,但在IE9下却无法刷新数据 $.getJSON(webApp + "/GetShowData.do?limit=" + limit,function(data){  //***********...

    浅析IE针对Ajax请求结果的缓存问题

    在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案。 目录 一、问题重现 二、通过为URL地址添加后缀的方式解决问题 三、通过...

    AJAX 缓存问题的两种解决方法(IE)

    做一个项目用到Ajax,开始觉得挺好,后来发现一个问题,例如删除一项,恢复之后就不能再接着删除, 必须要等一段时间,后来知道是IE缓存的问题 AJAX缓存页面是一个刚接触AJAX的人一定会遇到的问题,造成这个问题的...

    AngularJS在IE下取数据总是缓存问题的解决方法

    主要介绍了AngularJS在IE下取数据总是缓存问题的解决方法,分析了问题的原因及AngularJS设置禁止IE对ajax缓存的实现方法,需要的朋友可以参考下

    IE 缓存策略的BUG的解决方法

    IE 缓存策略的BUG的解决方法

    IE兼容性问题的快速解决方法_ajax请求不发送到后台

    原来这是IE缓存方式的原因,所以呢,用下边的解决方案吧。 1.在请求的URL后边加上随机数。Math.random(); JavaScript Code复制内容到剪贴板 var urlStr = /jquery/test1.txt + & + Math.random();$.ajax({ ...

    浅析IE浏览器关于ajax的缓存机制

    主要介绍了IE浏览器关于ajax的缓存机制,文中给大家提到了Ajax解决浏览器的缓存问题,解决方法有很多种,需要的朋友可以参考下

    ie发送ajax请求返回上一次结果的解决方法

    将响应结果放在浏览器缓存里 下次调用该ajax请求时 从缓存里读取 get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,不会产生这个问题 2....

    JavaScript中的常见问题解决方法(乱码,IE缓存,代理)

    解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的...

    快速解决jquery之get缓存问题的最简单方法介绍

    在ie系列下,$.get()方法在url地址固定时,会缓存返回结果,导致不可预料的问题。但在火狐下,则不会缓存。 要解决该问题有很多办法,最直接的是把$.get()方法换成$.ajax(),然后配置cache:false即可。我不喜欢$....

    jquery用get实现ajax在ie里面刷新不进入后台解决方法

    代码如下: function verify() { var jqueryObj = $... //注意这里由于ie采用缓存技术,对于同一url,只有第一次回调用后台,以后访问的就是这个缓存 //这里加上时间戳,就可以欺骗一下ie,每次都可以访问后台了,^_^ ur

    jquery ajax多次请求数据时 不刷新问题的解决方法

    jquery的ajax在频繁请求数据,或者重复请求数据的时候出现了一个情况,那就是非ie浏览器正常,ie...以上就是小编为大家带来的jquery ajax多次请求数据时 不刷新问题的解决方法全部内容了,希望大家多多支持软件开发网~

Global site tag (gtag.js) - Google Analytics