若是咱們發現本身頁面加載慢,一般會打開DevTools
的Network
欄找到具體的慢的請求,那他到底慢在哪呢?web
主要是資源加載的排隊ajax
不可優化部分chrome
優先
,圖片推遲
。可優化部分瀏覽器
請求已被暫停,以等待將要釋放的不可用TCP
套接字。緩存
瀏覽器線程池不是無限的,須要等待socket(TCP)釋放。 合併小文件減小請求。
請求被暫停,HTTP 1
上,瀏覽器僅容許每一個源
擁有六個TCP
鏈接。服務器
主要是對服務器的保護。 能夠把資源放到不一樣的域名上,參考`域名發散`。
請求等待發送所用的時間。Queuing
中的全部緣由加上代理協商所用的任什麼時候間。網絡
不可優化部分socket
Queuing
中不可優化部分可優化部分chrome-devtools
Queuing
中可優化部分ajax
有可能,加timestamp
可解決。注意1:post
Stalled
是Queuing
以後的下一個狀態,Stalled
開始時已經出隊,他們太顯著的差異(是否使用proxy/ssl
),他們之間沒有and/or/parent/child
的關係,有建議將queueing/stalled
更名爲postponed/awaiting socket
,具體能夠看看 chromium issue。
注意2:
另外,同源連接複用可能引起這樣的問題,因爲以前存在可用連接,此時瀏覽器但願重用以前的鏈接以節省資源,用以前的一個socket去發起鏈接,後收到服務器返回的連接已重置/不存在,再從本來可用連接中找可用連接,引起長時間等待,具體能夠看看 chrome-stalled-problem-resolving-process
與代理服務器鏈接協商所用的時間。
主要是瀏覽器經過代理服務器去服務目標服務,如本地代理Fiddler
,通常沒法優化。
DNS
查詢所用的時間
可優化部分
域名收斂
。DNS
解析路徑(若是內部有不少DNS
服務器解析)。創建鏈接所用的時間,包括TCP 握手/重試
和協商 SSL
的時間。
完成SSL
握手所用的時間。
可優化部分
https
,什麼須要http
。發出網絡請求所用的時間。一般不到一毫秒。
等待初始響應所用的時間,也稱爲至第一字節的時間。
可優化部分
* 服務器響應速度 * 服務器網絡帶寬
接收響應數據所用的時間。
可優化部分
* 服務器網絡帶寬 * 單個文件大小
大佬們總說要寫文章,第一次寫文章,就搬運了一下都感受好難哦。
有不對的地方歡迎大佬們指出。
Understanding Resource Timing
Chrome Cache Lock
Chromium Issues 476749
chrome-stalled-problem-resolving-process