征服快取引發的難題

iDotNetSpace發表於2009-11-05

如何平衡的使用瀏覽器快取?平時我們藉助快取來減少使用者載入頁面檔案(比如js,css,image等)的時間和頻寬,同時我們要確保使用者訪問的上述檔案時最新的。而後者是我們常常頭疼的問題。
本文主要介紹一些小的技巧來確保在網站檔案被快取的同時,又可以得到良好的效能和最新的更新的網站內容。
問題描述
比如我們在某頁面載入了css檔案,

如何優化頁面訪問的效能呢?
手段1、使用快取。通常我們希望此檔案被瀏覽器快取一定的時間,這樣可以使用者訪問此頁面的時候不必每次都向伺服器請求下載此檔案。我們也可以配置伺服器在頁面新增”Expires”頭資訊,從而告訴瀏覽器快取此檔案的時間。
手段2、我們使用yuicompressor等壓縮工具對css檔案進行壓縮,減小檔案的大小。
問題是當因版面風格的更新,此css已經做了更新,但是使用者可能仍然使用的是舊的頁面主題,甚至錯亂的頁面。這樣對使用者的體驗非常不好。
解決之道:
根本原理:欺騙瀏覽器,讓它認為它載入的檔案跟快取的檔案不一樣。
方法一、修改檔名

方法二、增加Query string

方法三、修改引用檔案路徑
這裡最好的是在伺服器配置檔案中進行配置來實現檔案路徑對映(url mapping)。

以上我們以css為例進行了說明,我們來看看圖片和js檔案。
Images
由於圖片的引用一般寫在css檔案中,並採用相對路徑,所以當css的引用路徑發生變化的時候,根據重寫規則,圖片被解析的路徑自然會同步發生更新。
JS
適用於css的方法同樣都適用於JS。
結束語
當然web站點效能的優化,除了快取之外,還有許多的方法。比如我們可以藉助YSlow來幫助使用者得到最好的體驗。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-618176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章