關於更新發布CSS和JS文件的緩存問題


在Web應用程序大行天下的今天,我們程序員的工作大都基於B/S架構,B/S架構的優勢就在於可以及時(甚至隨時)更新頁面以及后台邏輯,而不用通知客戶去手動更新客戶端。在這種環境下,是不是B/S架構的軟件就真的沒有升級的問題了呢?

現如今,瀏覽器大戰下,各個瀏覽器也是拼了命的提高性能,升級JS解析引擎,更好的處理瀏覽器的頁面緩存,讓用戶的瀏覽體驗更快,占用更小的PC資源。那么,問題就出現在JS和CSS緩存,甚至頁面緩存上。至於瀏覽器對頁面的緩存,我們一般通過在服務端發送頁面的時候設置頁面的生存期,一般幾個小時就能緩解很大的服務器壓力,並且,對瀏覽者來講,本地頁面晚更新幾個小時可能問題也不大。但,問題是,如果頁面發生了更新,但是該頁面鏈接的JS和CSS文件卻被瀏覽器緩存下來,只有待瀏覽器重啟后才能被刪除,甚至有些瀏覽器重啟后也不主動刪除JS和CSS的緩存文件。這樣頁面與JS和CSS文件就可能發生脫節了,從而出現某種異常現象,甚至頁面崩潰。更坑爹的現象是,現在用戶為了保存自己的工作(娛樂)狀態,根本就長時間不關機,當然也不關閉瀏覽器。從而使得該問題變得更加嚴重。

這里提供一種簡單並且常用的JS和CSS的緩存解決方案。我們看新浪微博的首頁。

 

新浪微博首頁

該頁面加載完畢后的頭部代碼如下(使用Fiirbug等Ajax調試工具打開):

 

新浪微博HTML頭部分代碼

注意上面的每個JS文件和CSS文件都加上了一個時間戳作為版本號。

<script type=”text/javascript” src=”{JS文件連接地址}?version=XXXXXXXX”></script>


<link rel=”stylesheet” type=”text/css” href=”{CSS文件連接地址}?version=XXXXXXXX”>

因為瀏覽器緩存的時候是以URL作為存儲單位(還記得POST頁面的返回按鈕的問題吧?),

從而當每次首頁的文件發生更新的時候只需要更改上面的版本號,就能提醒瀏覽器重新下載該文件了。

 

 

轉載自:http://wang.blog008.com/?p=70

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM