javascript - Chrome - devtools 时间线中的事件时间与性能计时 API 之间的差异

标签 javascript performance google-chrome navigation-timing-api

我正在尝试在控制台中获取例如 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 毫秒。 区别如下图所示:

enter image description here

此问题发生在其他站点上:在控制台中,我得到的时间总是比在“时间轴”选项卡中的时间短。 有人可以解释这种差异吗? 哪一次是真实的?

最佳答案

正如@Dragomok 在评论中建议的那样:

navigation-timing-apinavigationStart 事件上开始记录。性能选项卡时间线在 navigationStart 事件之前的“某个时间”开始记录,这就是为什么 performance.getEntriesByType("navigation")[0].loadEventEnd 给出的值小于 loadEventEnd 在时间轴上。

如果您计算时间轴 loadEventEnd - navigationStart,您将获得与 navigation-timing-api 相同的值。

图片为证: enter image description here


enter image description here

关于javascript - Chrome - devtools 时间线中的事件时间与性能计时 API 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710347/

相关文章:

javascript - 如何使用 Firebase 数据制作简单的 d3 图表?

javascript - IE 9 控制台未定义

javascript - 以特定方式对多维数组进行分组/压缩的更有效/更聪明的方法

c - 使用 OpenMP 进行矩阵乘法 (C) - 折叠所有循环

c++ - 提高字符串重叠矩阵构建效率

javascript - 如何为父元素分配子元素宽度

javascript - 如何使我的 html 的某些部分不可选择?

google-chrome - cookie 在服务器端还是在客户端/浏览器端过期?

javascript - 难以从 Chrome Extension Downloads API 访问 Javascript 中的对象属性

javascript - 在 Webkit/Chrome 中检测 HTML5 数字控件更改的事件?