Chrome運用「預期方法學」提公升使用者體驗

2021-09-08 03:41:39 字數 1217 閱讀 2033

ilya grigorik 寫了一篇文章詳細描述了chrome如何使用預期方法學隱藏網路延遲來提公升使用者體驗。

根據http archive發布的統計報告, 全球**網頁的平均大小首次超過1mb(1024kb)大關,網頁持續增肥並非是個好訊息,特別是對於移動終端。ilya提到說 「現在網頁的平均頁面大小已經增長到1059kb,平均每頁的請求數已經超過了80個,包含js,css,,flash等各種資源的請求。」 導致網頁不斷增肥的原因主要是(佔到平均網頁大小的一半)以及第三方指令碼如分析、廣告和社交分享按鈕。但根本原因還在於人們對富**和動態內容的貪得 無厭;另乙個重要原因在於:「**的所有者希望追蹤使用者行為,用各種可能widget來誘使使用者分享**內容」,因此各種嵌入指令碼也越來越多。 此外從請求的角度,「乙個平均的dns查詢需要60到120ms, 由於tcp握手需要往返時間,這使得在乙個請求發出之前會有100-200ms的延遲,」 而在無線網路中這樣的延遲甚至長達200-1000ms,這對於移動頁面的展現速度的影響更為糟糕。因此,最實實在在的優化方式還是減少請求連線數以及縮 小頁面的大小。

當然,和大部分瀏覽器快取訪問歷史記錄一樣,chrome也可以根據使用者的本地歷史記錄確定最可能訪問的10個**並隨時可以提前訪問。甚至於「當 使用者在多功能框(omnibox)內開始輸入搜尋詞的時候,就事先推測性地連線到搜尋引擎,當使用者在輸入url的同時,也可以根據已經輸入的url部分推 測連線到最有可能的站點。」 這樣,當使用者輸入完**確認時,相關的**頁面也被同時開啟,讓使用者感受到的等待時間非常短,提高了訪問速度。

chrome還在「解析html檔案之前,先使用乙個預載入掃瞄,對掃瞄到的資源請求搶先解析和預連線。使用者在網頁鏈結上的滑鼠懸停等行為也可能會啟動乙個預取」。

ilya還提到一點 「chrome支援在文件的開頭增加乙個使用rel=dns-prefetch的鏈結元素來暗示瀏覽器預解析該站點的dns。 這麼做的好處是:如果你知道某個特定的主機的請求將返回乙個3xx到不同的主機,那麼你也可以預先解決,通過dns預取。」 關於dns的優化,可以參考dns prefetching。

也許上面這些方法並不直接適用於您的應用程式,但可以在你的應用程式中隱藏類似的延遲。正如ilya說,「這雖然是小改善,但積少成多!」 關於瀏覽器頁面優化,可以參考瀏覽器的載入與頁面效能優化。

最後補充一點,對於chrome的預渲染、預載入功能固然能夠加快速度,但也可能會弄巧成拙,占用過多頻寬,對於這一點只需在chrome位址列內輸入chrome://settings/advanced,在選項內去掉「**網路活動來改進頁面載入」的選項即可。

Chrome運用「預期方法學」提公升使用者體驗

ilya grigorik 寫了一篇文章詳細描述了chrome如何使用預期方法學隱藏網路延遲來提公升使用者體驗。u0026 xd n 根據http archive發布的統計報告,全球 網頁的平均大小首次超過1mb 1024kb 大關,網頁持續增肥並非是個好訊息,特別是對於移動終端。ilya提到說 現...

提公升方法學習筆記

adaboost 用分錯的資料樣本來識別問題,通過調整分錯的資料樣本的權重來改進模型。偏差指的是 值的期望與真實值之間的差距,偏差越大,值越偏離真實資料的標籤。方差描述的是 值的變化範圍,離散程度,也就是離 值期望的距離,方差越大,資料的分布越分散。1.bagging 演算法對資料重取樣,然後在每個...

《統計學習方法》第八章提公升方法學習筆記

提公升方法需要解決兩個問題 一是在每一輪如何改變訓練資料的權值或概率分布 二是如何將弱分類器組合成乙個強分類器。對於第乙個問題,adaboost演算法是提高那些前一輪弱分類器錯誤分類樣本的權重,而降低那些被正確分類樣本的權重,這使得那些沒有被正確分類的樣本由於其權重的加大而受到後一輪的弱分類器的更大...