Ajax解决浏览器缓存问题

1.浏览器缓存的表现:

       在项目中一般提交请求都会通过ajax来提交,但是发现,每次提交后得到的数据都是一样的,每次清除缓存后,就又可以得到一个新的数据。

2.浏览器缓存原因:

        ajax能提高页面载入的速度主要的原因是ajax能实现局部刷新,通过局部刷新机制减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL一致时,就不需要提交给服务器,也就是不需要从服务器上面去获取数据。那么,我们得到还是最开始缓存在浏览器中的数据。虽然降低了服务器的负载提高了用户的体验,但是我们不能获取最新的数据。为了保证我们读取的信息都是最新的,我们就需要禁止他的缓存功能。

3.解决方法:

(1)在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

          原理:If-Modified-Since:0 故意让缓存过期

(2)在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。 

         原理:直接禁用缓存机制

(3)在URL后面加上一个随机数: "fresh=" + Math.random();。 

         原理:强行让每次的请求地址不同

(4)在URL后面加上时间搓:"nowtime=" + new Date().getTime();。

         原理:强行让每次的请求地址不同

(5)如果是使用jQuery,直接这样就可以了$.ajaxSetup({cache:false})。
         原理:不设置ajax缓存

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章