防止瀏覽器快取的幾種方法

2021-12-29 21:12:09 字數 1045 閱讀 5270

cache-control/pragma這個http head欄位用於指定所有快取機制在整個請求/響應鏈中必須服從的指令,如果知道該頁面是否為快取,不僅可以控制瀏覽器,還可以控制和http協議相關的快取或**伺服器。

cache-control請求欄位被各個瀏覽器支援得較好,而且它的優先順序也比較高,它和其他一些請求字段(如expires)同時出現時,cache-control會覆蓋其他字段。pragma欄位的作用和cache-control有點類似,它也是在http頭中包含乙個特殊的指令,使相關的伺服器來遵守,最常用的就是pragma:no-cache,它和cache-control:no-cache的作用是一樣的。

expires

expires通常的使用格式是expires:sat,25feb201212:22:17gmt,後面跟著乙個日期和時間,超過這個時間值後,快取的內容將失效,也就是瀏覽器在發出請求之前檢查這個頁面的這個字段,看該頁面是否已經過期了,過期了就重新向伺服器發起請求。

last-modified/etaglast-modified欄位一般用於表示乙個伺服器上的資源的最後修改時間,資源可以是靜態(靜態內容自動加上last-modified欄位)或者動態的內容(如servlet提供了乙個getlastmodified方法用於檢查某個動態內容是否已經更新),通過這個最後修改時間可以判斷當前請求的資源是否是最新的。一般服務端在響應頭中返回乙個last-modified欄位,告訴瀏覽器這個頁面的最後修改時間,如last-modified:sat,25feb201212:55:04gmt,瀏覽器再次請求時在請求頭中增加乙個if-modified-since:sat,25feb 201212:55:04gmt欄位,詢問當前快取的頁面是否是最新的,如果是最新的就返回304狀態碼,告訴瀏覽器是最新的,伺服器也不會傳輸新的資料。

與last-modified欄位有類似功能的還有乙個etag欄位,這個欄位的作用是讓服務端給每個頁面分配乙個唯一的編號,然後通過這個編號來區分當前這個頁面是否是最新的。這種方式比使用last-modified更加靈活,但是在後端的web伺服器有多台時比較難處理,因為每個web伺服器都要記住**的所有資源,否則瀏覽器返回這個編號就沒有意義了。

js清除瀏覽器快取的幾種方法

關於瀏覽器快取 清除瀏覽器快取的幾種方法 meta方法 不快取 no cache不能再任何地方快取must revalidate必須檢查更新版本 expires 有效期 清理form表單的臨時快取 jquery ajax清除瀏覽器快取 if modified since從何時更改 方法二,直接用ca...

js清除瀏覽器快取的幾種方法

瀏覽器快取,有時候我們需要他,因為他可以提高 效能和瀏覽器速度,提高 效能。但是有時候我們又不得不清除快取,因為快取可能誤事,出現一些錯誤的資料。像 類 實時更新等,這樣的 是不要快取的,像有的 很少更新,有快取還是比較好的。今天主要介紹清除快取的幾種方法。不快取 onload j ascript ...

js清除瀏覽器快取的幾種方法

瀏覽器快取,有時候我們需要他,因為他可以提高 效能和瀏覽器速度,提高 效能。但是有時候我們又不得不清除快取,因為快取可能誤事,出現一些錯誤的資料。像 類 實時更新等,這樣的 是不要快取的,像有的 很少更新,有快取還是比較好的。今天主要介紹清除快取的幾種方法。不快取 其實form表單的快取對於我們書寫...