Browser Navigation Timing Level 2 时间戳有时乱序
Browser Navigation Timing Level 2 timestamps are sometimes out of order
我们正在使用 Boomerang, including much of the timeline data from Navigation Timing Level 2 检测页面。大多数时候这一切都工作正常,但是对于我们正在检测的一小部分请求,我们得到的时间戳似乎是乱序的,当我们减去乱序的时间戳时会导致负持续时间值。
例如,查看我们几个小时的数据,在大约 1000 万次点击中,我看到:
- 56 个
responseEnd
的时间戳早于 responseStart
的实例(例如 responseEnd
= 1619456473999,responseStart
= 1619456479419)
- 17 个
unloadEventEnd
的时间戳早于 unloadEventStart
的实例(例如 unloadEventEnd
= 1619457675970,unloadEventStart
= 1619457682839)
- 7 个
domComplete
的时间戳早于 domLoading
的实例(例如 domComplete
= 1619399859821,domLoading
= 1619399860472)
我在各种各样的浏览器中都看到了这一点,其中许多是旧的,但也有一些是新的(Firefox 88、Safari 13.1.2)。
基本上我想弄清楚这是否是每个人都会发生的事情并且只是真实浏览器中 Nav Timing 的世界状态(在这种情况下我应该忽略它),或者它是否是更有可能是我们的仪器出现问题(在这种情况下,我需要弄清楚它是什么并修复它)。
感谢您对自己的体验提出任何建议或反馈!
----斯科特。
导航计时 API / 规范有两个版本:
支持级别 1 by all major browsers
2 级是 not yet supported by all browsers,例如野生动物园
级别 1 依赖于 JavaScript 的 Date 对象,正如您所观察到的那样,它不精确并且可能导致错误的时间戳。
Level 2 使用 High Resolution Time 来解决这个问题并确保单调递增的时间戳。
Boomerang 使用的是级别 1,这就是您看到损坏的时间戳的原因。
我们正在使用 Boomerang, including much of the timeline data from Navigation Timing Level 2 检测页面。大多数时候这一切都工作正常,但是对于我们正在检测的一小部分请求,我们得到的时间戳似乎是乱序的,当我们减去乱序的时间戳时会导致负持续时间值。
例如,查看我们几个小时的数据,在大约 1000 万次点击中,我看到:
- 56 个
responseEnd
的时间戳早于responseStart
的实例(例如responseEnd
= 1619456473999,responseStart
= 1619456479419) - 17 个
unloadEventEnd
的时间戳早于unloadEventStart
的实例(例如unloadEventEnd
= 1619457675970,unloadEventStart
= 1619457682839) - 7 个
domComplete
的时间戳早于domLoading
的实例(例如domComplete
= 1619399859821,domLoading
= 1619399860472)
我在各种各样的浏览器中都看到了这一点,其中许多是旧的,但也有一些是新的(Firefox 88、Safari 13.1.2)。
基本上我想弄清楚这是否是每个人都会发生的事情并且只是真实浏览器中 Nav Timing 的世界状态(在这种情况下我应该忽略它),或者它是否是更有可能是我们的仪器出现问题(在这种情况下,我需要弄清楚它是什么并修复它)。
感谢您对自己的体验提出任何建议或反馈!
----斯科特。
导航计时 API / 规范有两个版本:
支持级别 1 by all major browsers
2 级是 not yet supported by all browsers,例如野生动物园
级别 1 依赖于 JavaScript 的 Date 对象,正如您所观察到的那样,它不精确并且可能导致错误的时间戳。
Level 2 使用 High Resolution Time 来解决这个问题并确保单调递增的时间戳。
Boomerang 使用的是级别 1,这就是您看到损坏的时间戳的原因。