Ajax解决浏览器缓存问题
1.浏览器缓存的表现:
在项目中一般提交请求都会通过Ajax来实现,但是发现,每次提交后得到的数据都是一样的,但清除缓存后,就又可以得到一个新的数据。
2.浏览器缓存原因:
Ajax能提高页面载入的速度主要的原因:Ajax能实现局部刷新,通过局部刷新机制减少了重复数据的载入。当我们提交 的URL与历史的URL一致时,就不需要提交给服务器。但是,我们得到还是最开始缓存在浏览器中的数据。虽然降低了服务器的负载,提高了用户的体验,但是我们不能获取最新的数据。为了保证我们读取的信息都是最新的,就需要禁止他的缓存功能。
3.解决方法:
(1)故意让缓存过期
在ajax发送请求前加上
anyAjaxObj.setRequestHeader("If-Modified-Since","0")。
(2)直接禁用缓存机制
在ajax发送请求前加上
anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。
(3)强行让每次的请求地址不同
在URL后加上一个随机数: "fresh=" + Math.random();
或在URL后加上时间搓:"nowtime=" + new Date().getTime();。
(4)如果是使用jQuery,使用不设置ajax缓存的方法$.ajaxSetup({cache:false})。
摘自:CSDN Tauruslog 有删减