使用导航定时api测量到第一个字节的时间时哪个是准确的度量?为什么?
var timing = performance.timing;
var timeToFirstByte = timing.responseStart - timing.fetchStart
或
var timeToFirstByte_a = timing.responseStart - timing.navigationStart
答案 0 :(得分:2)
这实际上取决于您想要衡量的内容。
如果您从navigationStart开始,您将测量浏览器卸载先前内容的时间,设置新选项卡以及(如果通过重定向加载页面)以完成重定向。这是添加到设置与服务器的新连接以及服务器响应的时间以及要接收的第一个字节的时间。
如果你进行fetchStart,你只需要测量从发送到服务器的请求到收到第一个字节的时间。这将包括tcp和ssl协商。
如果您希望在连接设置为收到的第一个字节后,您可能需要responseStart - requestStart
。这不包括浏览器设置,重定向或tcp和ssl协商。