Ajax中缓存解决办法

由于AJAX的缓存是由浏览器维持,对发向服务器的url,ajax仅在第一次请求时与服务器交互信息,而之后的请求中,ajax认为是同一地址便不再向服务器提交请求,而是直接从缓存中提取数据。那么用什么方法处理缓存问题呐?

常用方法如下:
1、在服务端加 header("Cache-Control: no-cache, must-revalidate");(如php中)
2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0");
3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache");
4、在 Ajax URL 参数后加上 "?fresh=" + Math.random()
5、在 URL 参数后加上 "?timestamp=" + new Date().getTime().valueOf();
6、用POST替代GET:不推荐方法,违法了操作本意


最常用的方法是每次给url地址上加上时间戳,这样不会存在一次请求便不在向服务器请求。但是这也需要看具体的业务需求,因为缓存可以减少http请求,对于访问量大网站减少了服务器压力。对常用静态数据不需要每次去服务器获取,第一次取回后便缓存在客户端,如常用城市名称等数据。

你可能感兴趣的:(jquery,Ajax,PHP,cache,浏览器)