最佳化內容效率

Ilya Grigorik
Ilya Grigorik

我們的網路應用程式在範圍、目標和功能上都持續不斷成長,這對您來說這是件好事。然而,隨著網路內容更加豐富的網路世界不斷增加,另一個趨勢則是:每個應用程式下載的資料量持續穩定增加。為了提供良好效能,我們必須最佳化每個位元組的傳遞程序!

新式網頁應用程式的外觀為何?HTTP 封存可協助我們回答這個問題。這項專案會定期檢索最熱門的網站 (即 Alexa 前 100 萬個清單中的 30 萬個),並記錄及匯總每個目的地的資源數量、內容類型和其他中繼資料的數據分析,來追蹤建立網路的方式。

HTTP 封存趨勢

第 50 個百分位數 第 75 個百分位數 第 90 個百分位數
HTML 13 KB 26 KB 54 KB
圖像 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
其他 282 KB 308 KB 353 KB
總計 1054 KB 1985 KB 3486 KB

上述資料顯示了 2013 年 1 月到 2014 年 1 月這段期間,熱門目的地在網路上下載位元組數的成長趨勢。當然,不是每個網站的成長率都相同,或需要的資料量都一樣,因此重點是在分佈中強調不同的分位數:第 50 個 (中位數)、75 日和 90 日。

1 月這個解決方案本身不應令人感到意外,但卻能影響重大效能:沒錯,網際網路速度變快,但在不同國家/地區的速度不同,而且許多使用者仍受到數據用量上限和昂貴的計量付費方案 (特別是行動裝置使用者)。

與桌面版不同的是,網路應用程式不需要另外的安裝程序,只需輸入網址,系統就會啟動並開始運作,這是網路的主要功能。然而,為了實現這個目標,我們通常需要擷取數十個,有時甚至數百個資源,這些資源總量可能高達 MB,而且必須在數百毫秒內集結,才能提供我們想要的免安裝網頁體驗。

在滿足這些需求的情況下,立即提供即時網路體驗並不容易,因此最佳化內容效率至關重要,亦即移除不必要的下載、透過各種壓縮技術最佳化每項資源的傳輸編碼,以及盡可能利用快取功能移除多餘的下載內容。