1. 程式人生 > >js清除瀏覽器快取的方法

js清除瀏覽器快取的方法

瀏覽器快取

瀏覽器的快取在一定程度上可以提高網站效能和瀏覽器速度。但是在某些特殊的的情況下快取也可能會給我們帶來不便。

幾種清理快取的方法:

meta方法

//不快取
<META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
<META HTTP-EQUIV="expires" CONTENT="0">

說明:HTTP頭資訊“Expires”和“Cache-Control”為應用程式伺服器提供了一個控制瀏覽器和代理伺服器上快取的機制。HTTP頭資訊Expires告訴代理伺服器它的快取頁面何時將過期。HTTP1.1規範中新定義的頭資訊Cache-Control可以通知瀏覽器不快取任何頁面。當點選後退按鈕時,瀏覽器重新訪問伺服器已獲取頁面。如下是使用Cache-Control的基本方法:

  1) no-cache:強制快取從伺服器上獲取新的頁面

  2) no-store: 在任何環境下快取不儲存任何頁面

  HTTP1.0規範中的Pragma:no-cache等同於HTTP1.1規範中的Cache-Control:no-cache,同樣可以包含在頭資訊中。

 

清理form表單的臨時快取

<body onLoad="javascript:document.formname.reset()">

其實form表單的快取對於我們書寫還是有幫助的,一般情況不建議清理,但是有時候為了安全問題等,需要清理一下!

jquery ajax清除瀏覽器快取

方式一:用ajax請求伺服器最新檔案,並加上請求頭If-Modified-Since和Cache-Control,如下:

  $.ajax({
     url:'www.haorooms.com',
     dataType:'json',
     data:{},
     beforeSend :function(xmlHttp){ 
        xmlHttp.setRequestHeader("If-Modified-Since","0"); 
        xmlHttp.setRequestHeader("Cache-Control","no-cache");
     },
     success:function(response){
         //操作
     }
     async:false
  });

方法二,直接用cache:false,

  $.ajax({
     url:'www.haorooms.com',
     dataType:'json',
     data:{},
     cache:false, 
     ifModified :true ,
 
     success:function(response){
         //操作
     }
     async:false
  });

方法三:用隨機數,隨機數也是避免快取的一種很不錯的方法!

URL 引數後加上 "?ran=" + Math.random(); //當然這裡引數 ran可以任意取了

方法四:用隨機時間,和隨機數一樣。

在 URL 引數後加上 "?timestamp=" + new Date().getTime(); 

說明:因為每次請求的url後面的引數不一樣,相當於請求的是不同的頁面,用這樣的方法來曲線救國,清除快取。

 

清除cookie

 

<%

  Cookie killMyCookie = new Cookie("mycookie", null);

  killMyCookie.setMaxAge(0);

  killMyCookie.setPath("/");

  response.addCookie(killMyCookie);

%>

 

用php後端清理

在服務端加 header("Cache-Control: no-cache, must-revalidate");等等(如php中)

 

轉載自:https://www.haorooms.com/post/js_llq_hc

https://www.cnblogs.com/tonykan/p/3800933.html