Логирование времени загрузки страниц в piwik
В продолжение темы логирования ошибок в пивик.
Неплохо было бы логировать в ту же систему и время загрузки страницы у реальных пользователей.
Для этого в упомянутый в предыдущей статье логгер нужно добавить следующее:
function logTimings()
{
setTimeout(function () {
if (! window.performance || ! window.performance.timing) {
return;
}
var timing = window.performance.timing;
var perf = {
dns_lookup: getTime(timing, 'domainLookupStart', 'domainLookupEnd'),
ttfb: getTime(timing, 'requestStart', 'responseStart'),
response: getTime(timing, 'responseStart', 'responseEnd'),
dom_parse_and_js: getTime(timing, 'domLoading', 'domInteractive'),
dom_ready_cbs: getTime(timing, 'domContentLoadedEventStart', 'domContentLoadedEventEnd'),
to_dom_ready: getTime(timing, 'responseStart', 'domContentLoadedEventEnd'),
to_load: getTime(timing, 'responseStart', 'domComplete')
};
perf.type = 'timings';
perf.msg = perf.to_dom_ready;
perf.ua = navigator && navigator.userAgent;
perf.href = window.location.href;
logToPiwik(perf);
}, 5000);
}
function getTime(timing, from, to)
{
if (timing[from] && timing[to]) {
return (timing[to] - timing[from]) / 1000;
}
return null;
}
И поправить `window.onload` на:
window.onload = function()
{
if (! window.__angularLoaded) {
window.logError({type: 'app-not-started'});
}
logTimings();
};
Подробнее об объекте `window.performance.timing` можно почитать тут — https://blog.bullgare.com/2014/12/%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D1%81-navigation-timing-api/ или сразу на mdn https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.