2012-01-14 60 views
3

我在我的網站上有大約10個引用的CSS和JavaScript(JS)文件,我可以將它們合併,因此只有2個CSS和JS文件供Web瀏覽器客戶端下載。合併文件會減少HTTP請求的數量並減少頁面加載時間。緩存http請求的數量是否重要?

我的問題是:如果這10個CSS和JS文件在第一次頁面加載後被緩存,第二次頁面加載時間是否與只有2個組合CSS和JS文件的頁面一樣快?我會這樣想,因爲緩存的文件不需要HTTP請求。我知道有些命令腳本可以自動將CSS和JS文件合併爲一個部署,但這樣做會使未來可能在網站上工作的初級程序員/網頁設計師複雜化。該網站是一個慈善組織,並且只有很少的控制和可用的人力資源來保持事物的秩序。

更新:我的假設,使用緩存文件不需要HTTP是錯誤的。

回答

4

是的,即使資源被緩存,您也應該減少請求數量。有兩個原因:

1:有一個小的性能損失(每個文件),甚至高速緩存文件

如果您分析您的網站,你會發現每一個資源仍有往返正以製作服務器。如果資源尚未更新,服務器將返回HTTP狀態碼304 - Not Modified,否則它將返回HTTP狀態碼200(以及資源​​本身)。

這是一個被剖析堆棧溢出網頁CSS文件生產的樣品跟蹤:

enter image description here

正如你可以看到,即使在CSS文件緩存,有人要求以確保緩存版本最新。

2:第一次到訪也將從這種優化

這將提高首次訪問頁面加載速度和任何一個過時的高速緩存中受益。

+0

服務器將返回HTTP狀態碼304 - 未修改。一點修正。所有這些都是做瀏覽器,而不是服務器。您可以使用已禁用緩存的瀏覽器嘗試此操作。在這種情況下,服務器將始終返回200 - 確定。所以事實上服務器總是返回200.當然,除了一些情況。 – Cyberon 2012-01-14 23:29:43

1

是的,你應該,瀏覽器會得到內容大小,以確定文件是否已被更改。所以無論瀏覽器是否已經緩存了它,它總是會發送http請求。

0

確實,一旦文件被加載和緩存,無論css和js被分割成多少個文件,速度都是一樣的。

當然,每次用戶清除他們的緩存時,這10個文件將再次被服務,從而導致更多的http請求。

一般來說,最好儘可能少的文件到服務器,特別是當您的網站被大量用戶訪問時。每當你可以保存http請求時,你應該。