PerformanceTiming.navigationStart已废弃,求等效于performance.timing.navigationStart+performance.now()的方案
原来的performance.timing.navigationStart + performance.now()可以近似得到和Date.now()对齐的高精度时间戳,现在PerformanceTiming接口已废弃,这里提供两种可靠的替代方式:
完全对齐原逻辑的方案
通过PerformanceNavigationTiming接口获取准确的导航起始时间,再结合performance.now()计算:
// 获取当前页面的导航性能条目 const navigationEntry = performance.getEntriesByType('navigation')[0]; // 计算等效于原表达式的高精度时间戳 const currentHighResTime = navigationEntry.navigationStart + performance.now();
简洁替代方案
如果不需要和旧代码的绝对时间完全一致,performance.timeOrigin + performance.now()也是可行的——它和原表达式的差异是固定的偏移量,同样能得到和Date.now()近似的高精度时间戳。
关于两者差异的说明
你测试中发现performance.timeOrigin - performance.timing.navigationStart有较大差值是正常的:
performance.timeOrigin是当前页面上下文的创建原点(早于页面导航开始)navigationStart是当前文档开始导航的时间,所以两者必然存在时间差。
内容的提问来源于stack exchange,提问作者user19062342
相关产品推荐
相关产品推荐

