首页 > 解决方案 > 浏览器导航计时级别 2 时间戳有时会出现故障

问题描述

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

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

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

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

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

----斯科特。

标签: firefoxbrowsersafarinavigation-timing-apiboomerang

解决方案


Navigation Timing API / Specification 有两个版本:

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

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

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

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

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


推荐阅读