Ajax的浏览器缓存问题
- 当通过Ajax请求页面后,只要用户不主动刷新页面,数据就不会更新
- 当请求的URL与历史URL相同时,会直接使用缓存中的数据
- 这样就无法在不刷新的情况下读取最新的数据
解决方式:
- 在创建发送请求前加上,anyAjaxObj.setRequestHeader('If-Modified-Since', '0') // 设置发送请求后,会将浏览器数据最后更新时间与服务端数据最后更新时间对比
- 在创建发送请求前加上,anyAjaxObj.setRequestHeader('Cache-Control', 'no-cache') // 设置自动对比缓存更新情况
- 在URL后加上随机数 : 'fresh=' + Math.random()
- 在URL后加上时间戳:"nowtime=" + Date.now()
- 如果是通过jQuery,直接设置$.ajax({cache : false})