Firebug Net Panel中“阻塞”的含义是什么?

时间:2010-03-23 08:56:07

标签: firefox firebug blocking

我正在使用Firebug 1.5.2,在生产发布之前测试网站时,我可以看到“阻止”部分请求所消耗的大量时间。

'阻止'究竟是什么意思?

4 个答案:

答案 0 :(得分:29)

之前的“阻塞”(早期版本的FireBug)被称为“排队”。它实际上意味着请求正在队列中等待可用连接。据我所知,默认情况下持久连接的数量在Firefox的最新版本中限制为6,IE8也是6.早期它只有2.它可以由用户在浏览器设置中更改。
另外据我所知,在加载javascript文件时,所有其他资源(css,图像)都被阻止

答案 1 :(得分:5)

阻止是一个术语,用于描述阻止其他事件或代码处理的事件(在同一个线程内)。

例如,如果您使用“阻塞”套接字,那么在请求完成之后(在同一个线程内)将不会处理完成套接字请求后的代码。

异步活动(非阻塞)只会发出请求,并在后台发出请求时让其他代码运行。

在您的情况下,它基本上意味着在其他部分完成之前,firebug /浏览器的某些部分无法激活。即在下载更多内容之前,它正在等待下载图像。

答案 2 :(得分:4)

据我所知,有两个原因导致组件阻止其他人加载。

  1. 浏览器强制执行(但通常是可配置的)一次可以从特定主机加载多少并行资源的限制。
  2. 内联javascript,可以导致浏览器等待,看看是否需要继续下载其余组件(以防javascript重定向或替换页面内容)

答案 3 :(得分:1)

这意味着"等待连接"。正如官方documentation by Mozilla中解释的那样,"阻止"是"在队列中等待网络连接的时间。"这可能是由于Firefox达到其内部并行连接限制,正如那里和答案中所解释的那样。

它也可能意味着等待,因为服务器正在忙碌"。"阻止"的一个可能原因上面链接的官方文档中缺少时间:当服务器因为超载而无法提供连接时,可能会发生这种情况。在这种情况下,连接请求进入服务器上的队列,直到工作进程空闲后才能处理[source]。

从技术意义上讲,尚未建立此类连接,因为请求正在等待来自服务器[source]的accept()。也许这就是为什么它被归入" Blocking"通过Firefox,因为它也可以被考虑"在队列中等待网络连接的时间"。

(从Firefox 51开始,此行为并不完全一致:对于在新选项卡中调用的第一个URL,服务器接受连接请求之前的时间根本不计入" Timings&#34 ; tab - 仅用于后续输入的URL。这两种行为都可能是一个错误,我不知道哪一个。)

相关问题