Ajax页面缓存问题分析与解决办法
来源:互联网 发布:excel 数据收集 编辑:程序博客网 时间:2024/06/05 07:40
Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。
二、Ajax缓存的好处
这种设计使客户端对一些静态页面内容的请求,比如图片,css文件,js脚本等,变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。
三、Ajax缓存的不足
Ajax缓存虽然有上述的好处,但是如果通过Ajax对一些后台数据进行更改的时候,虽然数据在后台已经发生改变,但是页面缓存中并没有改变,对于相同的URL,Ajax提交过去以后,浏览器还只是简单的从缓存中拿数据,这种情况当然就不行了。
四、解决Ajax缓存问题的方法
解决这个问题最有效的办法是禁止页面缓存,有以下几种处理方法:
1、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,”no-cache”);
2、在服务端加 header(“Cache-Control: no-cache, must-revalidate”);
3、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“If-Modified-Since”,”0″);
4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
5、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();
6、用POST替代GET:不推荐
7、jQuery提供一个防止ajax使用缓存的方法:
<script type="text/javascript" language="javascript">
$.ajaxSetup ({
cache: false //close AJAX cache
});
</script>
8、修改load 加载的url地址,如在url 多加个时间参数就可以:
function loadEventInfoPage(eventId){
$.ajaxSetup ({
cache: true // AJAX cache 下面加上时间后load的页面中的js、css图片等都会重新加载,
//加上这句action会重新加载,但是js、css、图片等会走缓存
});
$("#showEventInfo").load(ctx + "/custEvents/viewEvent.action", {"complaint.Id":eventId, "tt":(new Date()).getTime()},function(){})
}
9、设置html的缓存
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
- Ajax页面缓存问题分析与解决办法
- Ajax页面缓存问题分析与解决办法
- Ajax页面缓存问题分析与解决办法
- Ajax页面缓存分析与解决
- AJAX缓存问题的解决办法
- ajax缓存问题的解决办法
- Ajax缓存问题的解决办法
- 解决Ajax页面缓存问题
- jqueryMobile页面跳转ajax载入与缓存问题
- SSH Ajax 页面缓存 页面刷新问题
- IE下Ajax缓存问题的解决办法
- ajax与缓存的问题!
- Ajax与IE6缓存问题
- 解决ajax页面缓存的问题
- 解决ajax页面缓存的问题
- ajax的缓存问题分析和解决方法
- ajax缓存解决办法
- ajax缓存解决办法
- mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?
- jQuery中off()方法函数的使用,单击一次,响应了两次
- 参数化-excel(ADO方式)
- Swift学习笔记(15)——属性
- DataURL, Blob, File, Image之间的关系与转换
- Ajax页面缓存问题分析与解决办法
- Vue 报错 Failed to resolve filter
- Kth Smallest Numbers in Unsorted Array(分别使用快排、归并、快选三种方法)
- React bind selcet
- XML技术(一)
- deepmind_lab Lua for Windows 5.1.4-46---LuaForWindows.rar 的下载地址
- 初识Calcite——使用实例
- vue的计算属性的set方法--几乎不用,了解就行
- PHP中常用的函数