我正在使用Firebug 1.5.2,在生产发布之前测试网站时,我可以看到“阻止”部分请求所消耗的大量时间。
'阻止'究竟是什么意思?
答案 0 :(得分:29)
答案 1 :(得分:5)
阻止是一个术语,用于描述阻止其他事件或代码处理的事件(在同一个线程内)。
例如,如果您使用“阻塞”套接字,那么在请求完成之后(在同一个线程内)将不会处理完成套接字请求后的代码。
异步活动(非阻塞)只会发出请求,并在后台发出请求时让其他代码运行。
在您的情况下,它基本上意味着在其他部分完成之前,firebug /浏览器的某些部分无法激活。即在下载更多内容之前,它正在等待下载图像。
答案 2 :(得分:4)
据我所知,有两个原因导致组件阻止其他人加载。
答案 3 :(得分:1)
这意味着"等待连接"。正如官方documentation by Mozilla中解释的那样,"阻止"是"在队列中等待网络连接的时间。"这可能是由于Firefox达到其内部并行连接限制,正如那里和答案中所解释的那样。
它也可能意味着等待,因为服务器正在忙碌"。"阻止"的一个可能原因上面链接的官方文档中缺少时间:当服务器因为超载而无法提供连接时,可能会发生这种情况。在这种情况下,连接请求进入服务器上的队列,直到工作进程空闲后才能处理[source]。
从技术意义上讲,尚未建立此类连接,因为请求正在等待来自服务器[source]的accept()
。也许这就是为什么它被归入" Blocking"通过Firefox,因为它也可以被考虑"在队列中等待网络连接的时间"。
(从Firefox 51开始,此行为并不完全一致:对于在新选项卡中调用的第一个URL,服务器接受连接请求之前的时间根本不计入" Timings&#34 ; tab - 仅用于后续输入的URL。这两种行为都可能是一个错误,我不知道哪一个。)