1. 程式人生 > >頁面加載所需時間的影響因素

頁面加載所需時間的影響因素

減少 issues 慢啟動 客戶端和服務器 查詢 文檔 情況 阻塞 數據

(1) 服務器必須在 200 ms 以內渲染出響應內容

服務器響應時間就是在除去網絡傳輸時間之後,一臺服務器首先返回 HTML 所花費的時間。因為我們剩下的時間實在太少了,這個時間應該控制在最低限度——理想情況下應該低於 200 ms,而且越少越好!

(2) 重定向的次數應該減至最少

額外的 HTTP 重定向會增加一次或兩次額外的網絡往返(如果需要再次查詢 DNS 的話就是兩次),這在 3G 網絡上將導致幾百毫秒的額外延遲。因此,我們強烈建議網站管理員們減少重定向的次數,而且最好完全消除重定向——這對 HTML 文檔來說尤其重要(盡可能避免重定向到 “m.” 二級域名的行為)。

(3) 首次渲染所需的網絡往返次數應該減至最少

由於 TCP 在評估連接狀況方面采用了一套特殊機制(參見 TCP 慢啟動),一次全新的 TCP 連接無法立即用滿客戶端和服務器之間的全部有效帶寬。在這種情況下,服務器在首次網絡往返中,通過一個新連接(約 14kB)只能發送最多 10 個 TCP 包,接下來它必須等待客戶端應答這些數據,然後才能增加它的擁塞窗口並繼續發送更多數據。

(4) 避免在首屏內容中出現外鏈的阻塞式 JavaScript 和 CSS

瀏覽器必須先解析頁面,然後才能向用戶渲染這個頁面。如果它在解析期間遇到一個非異步的或具有阻塞作用的外部腳本的話,它就不得不停下來,然後去下載這個資源。每次遇到這種情況,都會增加一次網絡往返,這將延後頁面的首次渲染時間。

(5) 為瀏覽器的布局和渲染工作預留時間 (200 ms)

解析 HTML 和 CSS、執行 JavaScript 的過程也將消耗時間和客戶端資源!取決於移動設備的速度和頁面的復雜度,這個過程將占用幾百毫秒。我們的建議是預留 200 ms 作為瀏覽器的時間消耗。

(6) 優化 JavaScript 執行和渲染耗時

執行復雜的腳本和低效的代碼可能會耗費幾十或上百毫秒——可以使用瀏覽器內建的開發者工具來收集概況、優化代碼。

參考鏈接

頁面加載所需時間的影響因素