2010-02-23 30 views
1

我有一個網站,其中包含許多小圖像的網頁。圖像被設定爲高速緩存,與包含頭文件:如何優化網頁上的圖像緩存

Expires "Thu, 31 Dec 2037 23:55:55 GMT" 
Cache-Control "public, max-age=315360000" 

當有人加載一個頁面,但是,我們似乎仍被迫發出的每個圖像的304響應 - 不是將整個圖像更好,但仍需要一些時間。當然,這種緩存取決於瀏覽器,但是有可能向瀏覽器建議它使用緩存的圖像而沒有任何請求呢?

回答

2

如果頁面上有許多小圖片,可以考慮在所有圖片上製作一個CSS精靈 - 這將大大減少請求數量。 A List Apart explains the concept

+0

這是一個很好的「低科技」選擇。把它看作是將您的腳本和樣式組合成單個文件的圖像等價物。 – 2010-02-23 11:07:35

+0

當然,最好的解決方案是同時執行緩存和將多個文件合併爲一個文件。 – 2010-02-23 11:24:04

+0

這看起來非常有前途 - 我們有成千上萬的小型16x16圖像,但我們可以將它們放入幾張合理大小的圖像中,並將這些圖像緩存起來,這將大大減少我們的請求。謝謝! – Karptonite 2010-02-24 06:46:09

1

看看RFC 2616中,HTTP/1.1協議的一部分:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

你會看到很多的選擇一起玩。主要用於代理,而不是瀏覽器。您無法真正強制瀏覽器完全停止Modified-Since-Requests。

尤其是老年人代理可能會忽略你的Cache-Control提示,見上述網站上所提到的段落:

注意HTTP/1.0緩存可能沒有實現Cache-Control和 可能只執行雜注:無-cache(見14.32節)。

如果你真的關心這樣的短請求,看看你的服務器中的HTTP保持活動功能是否被啓用(當然它有自己的副作用)。