Разница между timeDone в плагине RT во время загрузки страницы навигации по времени бумеранга vc

Я использую boomerang.js для мониторинга производительности сайта для моих реальных пользователей моего сайта. http://lognormal.github.io/boomerang/doc/

Он имеет RTPlugin http://lognormal.github.io/boomerang/doc/api/RT.html который измеряет timeDone (предполагаемое время загрузки страницы).

Существует также API для навигации по времени, который Boomerang поддерживает для браузеров, которые поддерживают время навигации. Используя время навигации, мы можем рассчитать время загрузки страницы, используя:

totalTime = loadEventEnd - NavigationStart

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

totalTime и timeDone - это разные числа, когда я смотрю на данные более внимательно, а timeDone всегда больше чем totalTime

Мои вопросы

  1. Какой из этих двух показателей является правильным для определения, когда страница загружается?
  2. Что делает плагин RT больше, чем захватывает время навигации?
  3. Когда мы должны использовать какой показатель и почему?

Спасибо Кунал

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, поэтому вы можете вызывать бумеранг BOOMR.page_ready метод в то время.

Точно так же некоторые сайты загружают весь свой контент после загрузки, и вы можете подождать до этого времени, чтобы вызвать page_ready.

Последний случай - когда страница отображается в Google Chrome. В этом случае событие onload срабатывает, но страница не может быть использована пользователем. Мы ждем, пока страница не перейдет из состояния предварительного отображения в видимое состояние, прежде чем захватывать время (и в этом случае мы фиксируем все переходы).

Надеюсь, что это ответ на ваш вопрос.

Другие вопросы по тегам