ajax 缓存 问题 requestheader
var paras="ajaxFlag=getMarkerIDs";
var myAjax=new Ajax.Request(
"AddInfoHandler.ashx",
{method:'get',parameters:paras,onComplete:showGetMarkerIDsResponse}
);
因为我有一个切换数据库的操作,第一次进数据库A的时候,列表加载正确,点击结点(ajax)地图显示A数据,但点击ie后退再进入数据库B的treeview,列表加载正确(加载列表不是ajax), 点击结点地图显示的数据却还是A的数据(ajax),我在AddInfoHandler.ashx设置断点,发现再次进行上面操作时候进A数据库断点命中,而进B数据库竟然没进断点,但是我确实很奇怪,没进页面竟然ajax也有返回数据,并且跟上一次一样,应该是用的缓存机制。 最后网上查到资料更改如下:
代码如下:
var myAjax=new Ajax.Request(
"AddInfoHandler.ashx",
{method:'get',requestHeaders: ['Cache-Control','no-cache','If-Modified-Since','0'],parameters:paras,onComplete:showGetMarkerIDsResponse}
);
下面的可以参考以前发布的文章
http://www.jb51.net/article/22074.htm
response.setHeader参数、用法的介绍
详细出处参考:http://www.jb51.net/article/16437.htm
相关推荐
-
Ajax中浏览器的缓存问题解决方法
每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存问题.纠结了很久,终于解决了,在这里总结一下. 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL一致时,就不需要提交给服务器,也就是不需要从服务器上面去获取数据,虽然这样降低了服务器的负载提高了用户的体验,但是我们不能获取最新的数据.为了保证我们读
-
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime(). 一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存. 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存.当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据. 如果数据改变了,而没加随机数,读取的数据会跟之前一样. 加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存
-
浅析IE针对Ajax请求结果的缓存问题
在默认情况下,IE会针对请求地址缓存Ajax请求的结果.换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端.在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案. 目录 一.问题重现 二.通过为URL地址添加后缀的方式解决问题 三.通过JQuery的Ajax设置解决问题 四.通过定制响应解决问题 一.问题重现 我们通过一个ASP.NET MVC应用来重现IE针对Ajax请求结果的缓存.在
-
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
在做ajax页面无刷新添加的时候,IE下遭遇Ajax缓存,因为刚开始并不知道IE有这个坏毛病,折腾好久,终于解决问题. 总结一下解决办法: 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,[即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,不会产生这个问题]而FF下不会出现这种情况.为了不受缓存影响,可以这样做: IE访问策略: Internet选项--浏览历史记录--设置-- Int
-
IE下Ajax缓存问题的快速解决方法(get方式)
折腾了半天,程序中使用jquery的load方法进行请求,很奇怪为啥第二次无法发送请求.百度了一把,谁知load是用get方式进行请求的,因此IE浏览器对 其进行缓存了.网上搜了很多解决方案,一大把,下面是我认为比较全面的解决方案.主要分为客户端解决和服务端解决. 1.客户端解决方案IE访问策略:Internet选项--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问网页时也可以 1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送
-
如何解决Ajax请求结果的缓存问题说明
在默认情况下,IE会针对请求地址缓存Ajax请求的结果.换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端.在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案.目录 一.问题重现 二.通过为URL地址添加后缀的方式解决问题 三.通过JQuery的Ajax设置解决问题 四.通过定制响应解决问题一.问题重现我们通过一个ASP.NET MVC应用来重现IE针对Ajax请求结果的缓存.在一个空
-
IE下jquery ajax无法获得最新数据的问题解决(IE缓存)
今天修改一个bug,利用ajax查询数据,在谷歌浏览器下可以获取到最新数据,而在IE中获得是旧数据,无法获得最新的数据,经查资料,才发现时IE缓存再作怪. 发现此ajax请求用的get方式,每次请求的URL一模一样,IE浏览器有个特殊的地方,如果每次请求的URL一样时,就会拿出缓存中已有的数据显示在页面上,并不会再次去查询数据库,所以每次显示的都是旧数据. 解决办法: 那就有思路了,我们可以让它每次请求的URL不一样,可以加一个参数,而且这个参数的值每次都不一样,时间戳最好不过了. 复制代码 代
-
防止jQuery ajax Load使用缓存的方法小结
一.用法 jquery的load函数是请求另一个文件并加载到当前DOM里的调用,load方法的完整格式是:load( url, [data], [callback] )(注意没有参数是GET方式请求,有参数则是 POST方法). * url:是指要导入文件的地址. * data:可选参数:因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里. * callback:可选参数:是指调用load方法并得到服务器响应
-
jQuery中ajax的使用与缓存问题的解决方法
1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个原则 2:一.谈Ajax的Get和Post的区别
-
解析jquery中的ajax缓存问题
jquery的ajax请求默认请求cache是true 也就是开启的,dataType为script和jsonp时默认为false.现在我要在浏览器里读取缓存,因为ajax请求的数据很大,请求一次就够了.但是问题来了,在FF里面,是没有ajax缓存的,也就是每次都会触发ajax请求,这点和IE不一样.所以在这里就得注意,做个判断,阻止触发ajax事件. 复制代码 代码如下: function ajax_show(apartId,roomClass,sortTile){ HX_T
-
Jquery中Ajax 缓存带来的影响的解决方法
使用jquery里load方法或者ajax调用页面的时候会存在cache的问题,清除cache的方法: 调用$.ajaxSetup ({cache:false}) 方法即可. 复制代码 代码如下: <script type="text/javascript"> $.ajaxSetup({ cache: false }); </script>
-
浅谈Ajax的缓存机制
Ajax的缓存机制和浏览器处理资源时的缓存机制是一样的. 三条简单规则: 只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/ETag头的设置). 只要是POST请求,浏览器都不会缓存. Https的请求,浏览器不会缓存(绝大数情况如此,但是也有例外,据说FF浏览器是例外). 补充: 在URL中拼入随机的查询字符串可以使浏览器认为这是一个新的请求,从而不使用缓存. 在Ajax的请求中设置Http头: If-Mo
-
禁止ajax缓存获取程序最新数据的方法
今天做项目,几乎所有的提交都是通过ajax来提交,我测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台.每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存问题.纠结了很久,终于解决了,在这里总结一下. 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL
随机推荐
- 浅谈DOM的操作以及性能优化问题-重绘重排
- MySQL 5.7解压版安装、卸载及乱码问题的图文解决方法
- 仿CSDN 右下角悬挂的浮动层效果
- 自己封装的常用javascript函数分享
- js parseInt("08")未指定进位制问题
- PHP 截取字符串函数整理(支持gb2312和utf-8)
- Zend Framework框架路由机制代码分析
- php加水印的代码(支持半透明透明打水印,支持png透明背景)
- C#生成指定范围内的不重复随机数
- Android中PopupWindow响应返回键并关闭的2种方法
- JS实现部分HTML固定页面顶部随屏滚动效果
- 简单示例AJAX结合PHP代码实现登录效果代码
- jQuery级联操作绑定事件实例
- use jscript Create a SQL Server database
- jQuery插件版本冲突的处理方法分析
- PowerShell多线程执行前后台作业的例子
- PHP CLI模式下的多进程应用分析
- Oracle查询优化日期运算实例详解
- javascript数组遍历的方法实例分析
- 拨号一切正常 但不能上网的解决方法