避免瀏覽器快取靜態檔案

2021-04-21 05:54:49 字數 1419 閱讀 9640

本文討論的主題是如何防快取,  尤其是如何防止靜態檔案被快取..

在    re:對url的一些調整建議,  二級網域名稱不利於客戶端瀏覽器快取  一文中,我提到了怎麼最大化的

利用瀏覽器快取功能,來提高客戶端瀏覽速度,  減輕伺服器負擔的.

但是事物總是一分為二的,並不是所有的場合都要使用快取的.  有時候我們的資料被快取了反而會給我們帶來麻煩.

對於動態資料(從資料庫讀取生成的那些),我們可以通過以下方法來禁止瀏覽器快取。

'asp  為例  禁止快取

response.buffer  =  true 

response.expiresabsolute  =  now()  -  1 

response.expires  =  0 

response.cachecontrol  =  "no-cache" 

response.addheader  "pragma",  "no-cache" 

對於ajax  的請求(不管是靜態資料還是動態資料):

//以下三種方法使用其中任何一種方法都可以

//或者

//或者

如果使用  prototype.js    ,  用類似這樣的** 

new  ajax.request(url,)

或者new  ajax.request(url,)

什麼情況下,要禁止靜態檔案快取:

1、經常可能要改動的  js,  css.

比如  乙個html  檔案,  test.html  在  1.0版本中。可能是這樣

修改後    v1.1版本:

新增加了乙個foo.js    同時,也改動了common.js  ,  在common.js  中定義了新的類,並在foo.js  中使用了common.js.   

在這種情況下如果以前使用者瀏覽過  1.0版本的  html  檔案,那麼他的瀏覽器自動快取了  common.js

當他瀏覽新版本的時候,因為使用的是  v1.1的  foo.js  和  v1.0的  common.js  ,這樣將導致指令碼出錯。

解決方法**:

因為css,js  是通過

其中  ver=113  的  113就是版本號,一般都是採用  cvs  或其他工具生成的開發版本號。

這樣真正做到了應該快取的時候快取靜態檔案,當版本有更新的時候從獲取最新的版本,並更新快取。

對於影象

如何避免瀏覽器快取。

無法被瀏覽器快取的請求 http資訊頭中包含cache control no cache,pragma no cache,或cache control max age 0等告訴瀏覽器不用快取的請求 需要根據cookie,認證資訊等決定輸入內容的動態請求是不能被快取的 經過https安全加密的請求 有...

快取 瀏覽器快取

瀏覽器快取 brower caching 是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件 1 瀏覽器第一次請求時,會發出一組 http 頭,用來指導瀏覽器如何進行快取。伺服器規定乙個資源是否要進行快取,主要由響應頭中的expires...

瀏覽器快取

1.為什麼使用瀏覽器快取 以前了解的動態指令碼加速,或者動態內容快取之類,他們的原理都是避免伺服器重複計算,結果仍保留在伺服器端,這樣獲取資料還得從伺服器檢索然後傳送到使用者瀏覽器,如果我們把這些結果放在瀏覽器中,就省去了伺服器的查詢和網路傳輸,瀏覽器快取很好的實現了這個功能 2.瀏覽器快取存放在哪...