本文討論的主題是如何防快取, 尤其是如何防止靜態檔案被快取..
在 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.瀏覽器快取存放在哪...