3

I use boomerang.js for monitoring web site performance for my real users for my site. http://lognormal.github.io/boomerang/doc/

It has a RTPlugin http://lognormal.github.io/boomerang/doc/api/RT.html which measures timeDone (perceived page load time ).

There is also navigationg timing api that boomerang supports for browsers that support navigation timing. Using navigation timing we can calculate page load time using:

totalTime = loadEventEnd - NavigationStart

https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#processing-model

totalTime and timeDone are different numbers when I look at the data more closely and timeDone is always more than totalTime

My questions are

  1. Which one of the two is a right metric for finding out when the page is loaded ?
  2. What does RT plugin do more than what navigation timing captures ?
  3. When should we use which metric and why ?

Thanks Kunal

4

1 回答 1

1

很高兴在这里见到你:)

哪个数字是正确的取决于您测量的内容。如果您正在测量 onload 何时触发并让回旋镖自行触发事件,那么这两个数字通常是相同的,因为 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 错误或不存在。在这些情况下,回旋镖会退回到其他值(有关更多详细信息,请参阅源代码)。

结束时间实际上是调用 done() 方法的时间。默认情况下,这是在页面的 onload 方法中调用的,但您可以覆盖它。

许多站点的页面在 onload 事件触发之前被认为是“完整的”(用户可用),因此您可能希望BOOMR.page_ready在那时调用回旋镖的方法。

类似地,有些网站在 onload 之后加载所有内容,您可能会等到那个时候调用 page_ready。

最后一种情况是 Google Chrome 预呈现页面。在这种情况下,onload 事件会触发,但用户无法使用该页面。在捕获时间之前,我们等到页面从预渲染状态移动到可见状态(在这种情况下,我们捕获所有转换)。

希望这能回答你的问题。

于 2014-02-07T18:27:13.917 回答