若是咱们发现本身页面加载慢,一般会打开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