禁止ajax缓存的方法(ASP/PHP/JSP/html/js)

四月 13, 2019 | views
Comments 0

禁止ajax缓存最简单的办法就是在js端直接生成一个随机数了,但是有时会发现此方法不适用于post了,如果我们要禁止post 提交数据的ajax缓存需要怎么处理呢,下面我整理了很多关于禁止ajax缓存的例子.

ajax缓存有好处,但也有坏处,缓存有时候会导致误操作,影响用户体验,若你的WEB项目不需要ajax缓存功能,可按下述方法来禁止ajax缓存.

一、在ASP中禁止ajax缓存:'放在ASP网页最开头部分,代码如下:

  1. Response.expires=0 
  2. Response.addHeader("pragma","no-cache"
  3. Response.addHeader("Cache-Control","no-cache, must-revalidate"

二、在PHP中禁止Ajax缓存,放在PHP网页开头部分,代码如下:

  1. header("Expires: Thu, 01 Jan 1970 00:00:01 GMT"); 
  2. header("Cache-Control: no-cache, must-revalidate"); 
  3. header("Pragma: no-cache"); 

三、在JSp中禁止ajax缓存,代码如下:

  1. //放在JSP网页最开头部分 
  2. response.addHeader("Cache-Control""no-cache"); 
  3. response.addHeader("Expires""Thu, 01 Jan 1970 00:00:01 GMT"); 

四、通过给网页添加随机字符强制更新,代码如下:

  1. var url = 'http://url/';//开源软件:phpfensi.com 
  2. url += '?temp=' + new Date().getTime(); 
  3. url += '?temp=' + Math.random(); 

五、若是静态HTML,可添加HTTP headers头禁止缓存,代码如下:

  1. <meta http-equiv="pragma" content="no-cache" /> 
  2. <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" /> 
  3. <meta http-equiv="expires" content="Thu, 01 Jan 1970 00:00:01 GMT" /> 
  4. <meta http-equiv="expires" content="0" /> 

六、可以在XMLHttpRequest发送请求之前加上以下代码禁止ajax缓存,代码如下:

  1. XMLHttpRequest.setRequestHeader("If-Modified-Since","0"); 
  2. XMLHttpRequest.send(null); 

七、jQuery ajax Load禁止

在jQuery提供一个防止ajax使用缓存的方法,把下面的语句加在head的javascript文件里,就可以解决问题,代码如下:

  1. $.ajaxSetup ({  
  2.     cache: false //关闭AJAX相应的缓存  
  3. }); 

小结:不过现在都是使用jquery ajax了我们如果不希望缓存可以直接设置 cache: false 这样可以解决post,get等提交数据方式.



zend