0

我们正在使用Boomerang检测页面,包括来自Navigation Timing Level 2的大部分时间线数据。大多数情况下,这一切都很好,但是对于我们正在检测的一小部分请求,我们得到的时间戳似乎是无序的,当我们减去无序的时间戳时会导致负的持续时间值。

例如,查看我们几个小时的数据,在大约 1000 万次点击中,我看到:

  • 56 个时间戳responseEnd早于的实例responseStart(例如responseEnd= 1619456473999,responseStart= 1619456479419)
  • 时间戳unloadEventEnd早于的 17 个实例unloadEventStart(例如unloadEventEnd= 1619457675970,unloadEventStart= 1619457682839)
  • 时间戳domComplete早于的 7 个实例domLoading(例如domComplete= 1619399859821,domLoading= 1619399860472)

我在各种各样的浏览器中都看到了这一点,其中许多是旧的,但有些是较新的(Firefox 88、Safari 13.1.2)。

基本上,我试图弄清楚这是否是每个人都会发生的事情,并且只是真实浏览器中导航计时的世界状态(在这种情况下我应该忽略它),或者它更有可能是什么我们的仪器有问题(在这种情况下,我需要弄清楚它是什么并修复它)。

感谢您对自己的体验提出任何建议或反馈!

----斯科特。

4

1 回答 1

2

Navigation Timing API / Specification 有两个版本:

所有主流浏览器都支持级别 1

并非所有浏览器都支持第 2 级,例如 Safari

正如您所观察到的,级别 1 依赖于 JavaScript 的 Date 对象,该对象不精确并且可能导致错误的时间戳。

Level 2 使用高分辨率时间来解决这个问题,并确保单调增加的时间戳。

Boomerang 使用的是 1 级,这就是为什么您会看到损坏的时间戳。

于 2021-07-15T10:08:06.643 回答