【发布时间】:2011-05-03 23:22:21
【问题描述】:
我的应用程序正在执行大量连续的 XHR 调用。这意味着要建立大量 HTTP 连接。
我正在尝试分析所有这些连接的性能。我发现第一个 HTTP 连接在 阻塞 上花费了大约 10% 的持续时间(遵循引用自 Firebug Wiki 的定义):
阻塞 - 浏览器队列等待网络连接所花费的时间(以前称为排队)。对于 SSL 连接,这包括 SSL 握手和 OCSP 验证步骤。
在连续调用中,阻塞所花费的时间增加,大约 10 次调用后,阻塞保持稳定在平均约 120 毫秒(!!!)。
我尝试在 Chrome 中使用 DevTools 和在 IE 中使用 Fiddler 类似地测量 HTTP 连接,尽管它们没有对 HTTP 连接的不同阶段使用完全相同的阶段/名称,但两者都没有显示Firefox 在阻止上花费的时间过多。
我可以排除缺少可用(持久)HTTP 连接。由于 XHR 调用是同步完成的。
有人熟悉这种 Firefox 行为吗?如有必要,我可以显示 Firebug Net Panel 输出。
【问题讨论】:
-
您的意思是 XHR 调用是异步完成的吗?如果它们是同步的,阻塞将是预期的行为。
-
不,它们是显式同步的。一个接一个,一次不超过 1 个。
标签: ajax http firefox panel blocking