Chrome - devtools 时间线中的事件时间与性能时间之间的差异 API
Chrome - Difference between event time in devtools timeline and performance timing API
我正在尝试在控制台中获取 loadEventEnd
时间。你可以通过 performance timing 2 API or performance timing API 来完成。
通过计算我得到了相同的结果:
performance.getEntriesByType("navigation")[0].loadEventEnd
// 483.915
chrome.loadTimes().finishLoadTime * 1000 - chrome.loadTimes().startLoadTime * 1000
// 484
performance.timing.loadEventEnd - performance.timing.navigationStart
// 484
但是在 devtools 的时间轴选项卡中我得到结果 510 ms。
区别如图:
这个问题发生在其他站点上:在控制台中,我得到的时间总是比在“时间轴”选项卡中的时间短。
有人可以解释这种差异吗?
哪一次是真实的?
正如@Dragomok 在评论中建议的那样:
navigation-timing-api
在 navigationStart
事件开始记录。性能选项卡时间线在 navigationStart
事件之前开始记录 "some time",这就是为什么 performance.getEntriesByType("navigation")[0].loadEventEnd
在时间线中给出的值小于 loadEventEnd
的原因。
如果您计算时间轴 loadEventEnd - navigationStart
,您将得到与 navigation-timing-api
相同的值。
图片为证:
我正在尝试在控制台中获取 loadEventEnd
时间。你可以通过 performance timing 2 API or performance timing API 来完成。
通过计算我得到了相同的结果:
performance.getEntriesByType("navigation")[0].loadEventEnd
// 483.915
chrome.loadTimes().finishLoadTime * 1000 - chrome.loadTimes().startLoadTime * 1000
// 484
performance.timing.loadEventEnd - performance.timing.navigationStart
// 484
但是在 devtools 的时间轴选项卡中我得到结果 510 ms。 区别如图:
这个问题发生在其他站点上:在控制台中,我得到的时间总是比在“时间轴”选项卡中的时间短。 有人可以解释这种差异吗? 哪一次是真实的?
正如@Dragomok 在评论中建议的那样:
navigation-timing-api
在 navigationStart
事件开始记录。性能选项卡时间线在 navigationStart
事件之前开始记录 "some time",这就是为什么 performance.getEntriesByType("navigation")[0].loadEventEnd
在时间线中给出的值小于 loadEventEnd
的原因。
如果您计算时间轴 loadEventEnd - navigationStart
,您将得到与 navigation-timing-api
相同的值。
图片为证: