2009-08-30 54 views
1

我有許多許多小圖像顯示在用戶的配置文件中,並且此頁面的加載非常可怕。最好的解決辦法是將它們全部精雕細刻,但令人遺憾的是,我有太多的圖像,而且每個配置文件只有幾百個。HTTP:什麼是很少更改圖像的最佳標頭

所以,我試圖得到第二個最佳解決方案。我應該發送什麼標題? ETag的?過期?緩存控制?現在,我有:

http://metaward.com/media/award/ofwjh3.png

Last-Modified Sat, 11 Jul 2009 22:37:49 GMT 
Cache-Control max-age=2592000 
Expires Tue, 29 Sep 2009 22:41:21 GMT 

而且隨着大量的圖片(顯示他們是如何加載速度緩慢,甚至當緩存)的示例頁面:

http://metaward.com/6

有時用戶也將改變他們的個人資料圖片,但只有其中一個,所以我不擔心緩存。

回答

2

在這種情況下,您應該使用「遠期未來」來最大化緩存命中。這意味着如果你改變圖像,你需要給它一個新的名字,但我無法想象你經常改變它們,因爲有這麼多。

你真的有100頁的圖像在網頁上,你應該小心他們。也許有一些更常見的(你推薦的),你可以先看看它是否有幫助。或者,也許你可以做一個「最不可能改變」的精靈。

+0

通過sprite他們你的意思是將它們轉換爲圖像映射。這樣你只有一個大的圖像下載,這將最大限度地減少發送到服務器的http請求數量,並加速下載。這對你發送的鏈接很有效,但可能並不總是合適的。 – Matt 2009-08-30 23:30:12

+0

這是遠期未來的頭銜的鏈接:http://www.askapache.com/htaccess/apache-speed-expires.html – ndp 2009-08-30 23:34:27

+0

@Matt是的。將所有圖像放入一個文件中,然後「拼貼」它。假設你有100x100的瓷磚。如果您將其設置爲背景圖像,則第1行第2列的CSS看起來像「background-position:-100,0; ​​width:100; height:100; overflow:hidden」。 – ndp 2009-08-30 23:37:39

0

當訪問者從配置文件移動到配置文件時,緩存可能會有所幫助,並且使用持久連接從不同子域中提供圖像可能有助於加速傳輸,但真正的性能殺手只是HTTP請求的數量。如果您可以識別超過50%的時間出現在一起的兩個或更多圖像,似乎值得將它們組合成定期安排的脫機過程中的精靈。如果資源許可,甚至可以使用圖像處理庫例如php-gd在運行時結合並提供圖像塊。

相關問題