2015-10-16 27 views

回答

9

如你所知,精靈會被用來防止多個請求排隊,所以只要有一個有效載荷,你就可以獲得該網站的所有精靈。

但是使用精靈時,您會傾向於獲得大量在整個網站中使用的附加圖標,這些圖標在任何單個頁面上都不是全部需要。

因此,對於http/2複用,排隊資源不再是問題。只有在下載每個頁面所需的文件時才能獲得速度優勢。

但是,通過將一些圖像合併到一個文件中,您可以獲得更好的壓縮效果,從而使文件傳輸的整體大小更小。

BenoîtBéraud和Alexandre Masselot運行的速度測試給出了一個精靈表加載比單個精靈更快的示例。他們的結論是精靈套仍然可以使用使用HTTP/2 http://blog.octo.com/en/http2-arrives-but-sprite-sets-aint-no-dead/瑞秋安德魯

擴展寫了關於HTTP/2可以在這裏找到的時候,以優化網站性能: https://www.smashingmagazine.com/2016/02/getting-ready-for-http2/

+1

這不是一個錯誤的假設,但很難想象壓縮使得這種差異超過單獨加載H2的好處。如果是這樣,我懷疑它會處於非常人爲的情況下。將會成爲一個很好的研究課題。 –

+0

對於您可能有興趣閱讀的sprite速度測試:http://blog.octo.com/en/http2-arrives-but-sprite-sets-aint-no-dead/ – Sarcoma

0

隨着HTTP/2複用,服務器將讀取大量小文件而不是讀取單個大文件。如果服務器是資源有限的(比如某些物聯網的裝置),那麼你可能會發現一種情況,最好讓它做單一的大讀取,而不是很多小的讀取,因爲每次讀取都會導致服務器操作系統執行大量與文件訪問相關的操作。

在客戶端,瀏覽器將管理許多小文件,而不是大文件。我可以想象用於當前精靈工作流程的代碼路徑得到了很好的處理和優化,因爲它很常用。所以可能會發生這樣的情況,即擁有大量小文件的新案例可能會變慢,至少一段時間。