我正在使用 Navigation Timing API 来收集一些基本的网络性能测量,如下所示:
从Domain A中的页面,将 iframe 插入到 DOM 中,该 DOM 下载Domain B中的另一个页面,将冗长的随机查询字符串应用于Domain B URL 以进行缓存清除。
域 B 页面中的 JavaScript 等待几秒钟,然后读取 window.performance.timing 的内容。
这些数字看起来与预期的一样,除了一件事:connectEnd 几乎总是等于 connectStart。除非我误解发生了什么,否则不应该有持久连接,浏览器也不应该从缓存中检索域 B文档。因此,浏览器应该正在建立到域 B的新连接,而 connectEnd 减去 connectStart 应该反映了这样做所花费的时间。
我已经在 Firefox、Chrome 和 IE (IE 10) 中对此进行了测试。在 Firefox 和 IE 中,我只观察到 connectEnd 等于 connectStart。它们在 Chrome 中通常也相同,但我确实看到 connectEnd 比 connectStart 一次更大。
测试页面可在http://test-pages.s3.amazonaws.com/test-navtiming.html下载另一个测试页面http://www.wildlemur.com/files/navtiming.html(加上随机请求参数)。connectStart 和 connectEnd 的值显示在浏览器控制台中。
在这种情况下,connectEnd 经常等于 connectStart 的原因是什么?