我正在尝试在控制台中获取例如 loadEventEnd
时间。你可以通过 performance timing 2 API 来完成或 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 毫秒。 区别如下图所示:
此问题发生在其他站点上:在控制台中,我得到的时间总是比在“时间轴”选项卡中的时间短。 有人可以解释这种差异吗? 哪一次是真实的?
最佳答案
正如@Dragomok 在评论中建议的那样:
navigation-timing-api
在 navigationStart
事件上开始记录。性能选项卡时间线在 navigationStart
事件之前的“某个时间”开始记录,这就是为什么 performance.getEntriesByType("navigation")[0].loadEventEnd
给出的值小于 loadEventEnd
在时间轴上。
如果您计算时间轴 loadEventEnd - navigationStart
,您将获得与 navigation-timing-api
相同的值。
关于javascript - Chrome - devtools 时间线中的事件时间与性能计时 API 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710347/