我使用boomerang.js为我的网站的真实用户监控网站性能。http://lognormal.github.io/boomerang/doc/
有一个RTPluginhttp://lognormal.github.io/boomerang/doc/api/RT.html测量 timeone (感知页面加载时间)。
对于支持导航计时的浏览器,也有boomerang支持的导航计时api。使用导航计时,我们可以计算页面加载时间:
totalTime = loaddeventend - NavigationStart
https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html处理模型
totalTime和timeDone是不同的数字,当我更仔细地观察数据时,timeDone总是大于totalTime
我的问题是
- 哪一个是一个正确的指标来发现页面何时加载?
- RT插件做什么比什么导航定时捕获更多?
- 我们应该何时使用哪个指标,为什么?
谢谢(Kunal
很高兴在这里见到你
哪个数字是正确的取决于你测量的是什么。如果您正在测量onload触发和let boomerang自行触发事件的时间,那么这两个数字通常是相同的,因为tdone使用了上面提到的相同的数学方法。查看done()方法中的代码:
if(impl.navigationStart) {
t_start = impl.navigationStart;
}
(https://github.com/lognormal/boomerang/blob/master/plugins/rt.js # L368)
impl。navigationStart等于window.performance.navigationStart,除非浏览器错误导致navigationStart错误或不存在。在这些情况下,boomerang会返回到其他值(参见源代码以获得更多详细信息)。
结束时间实际上是done()方法被调用的时间。默认情况下,这是在页面的onload方法中调用的,但你可以重写它。
许多站点的页面在onload事件触发之前被认为是"完成"的(用户可用的),所以你可能想在那个时候调用boomerang的BOOMR.page_ready
方法。
同样,有些网站在onload之后加载所有内容,你可以等到那个时候调用page_ready。
最后一种情况是当页面被Google Chrome预渲染时。在这种情况下,onload事件触发,但页面不能被用户使用。在捕获时间之前,我们等待页面从预呈现状态移动到可见状态(在这种情况下,我们捕获所有转换)。
希望这能回答你的问题