解决Ajax请求时浏览器的缓存问题

Ajax能提高页面载入速度的主要原因是通过Ajax减少了重复数据的载入,也即在载入数据的同时将数据缓存到内存中,一旦数据被加载,只要没有刷新页面,这些数据就会一直被缓存在内存中,当提交的URL与历史的URL一致时,就不需要提交给服务器,也即不需要从服务器获取数据,虽然降低了服务器的负载,提高了用户体验,但不能获取最新的数据。为了保证读取的信息都是最新的,需要禁止其缓存功能。

 

解决方案有如下几种:

 

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

 

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

 

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

 

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

 

⑤ 如果是使用jQuery,则用$.ajaxSetup({cache:false})。这样页面的所有Ajax都会执行该语句而不需要保存缓存记录。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.duanlonglong.com/qdjy/447.html