Временные метки навигации
Временные метки навигации являются частью API производительности и предоставляют метрики, связанные с переходом от одной страницы к другой. Например, вы можете определить, сколько времени требуется для загрузки или выгрузки документа, или залогировать время, прошедшее до завершения построения DOM и возможности взаимодействия с ним.
Включается только текущий документ, поэтому обычно для наблюдения существует только один объект PerformanceNavigationTiming. Он расширяет интерфейс PerformanceEntry с типом entryType "navigation" и также наследуется от PerformanceResourceTiming, поэтому доступны все отметки времени из процесса получения документа.
Временные метки навигации
Рисунок 1. Временные метки навигации (источник).
Временные метки навигации документа (в дополнение к меткам из Временных меток ресурсов) следующие:
-
startTime: Всегда 0. -
unloadEventStart: (если есть предыдущий документ) отметка времени непосредственно перед запуском обработчика событияunloadтекущего документа. -
unloadEventEnd: (если есть предыдущий документ) отметка времени непосредственно после завершения обработчика событияunloadтекущего документа. -
domInteractive: отметка времени, когда построение DOM завершено и взаимодействие с ним из JavaScript возможно. -
domContentLoadedEventStart: отметка времени непосредственно перед запуском обработчика событияDOMContentLoadedтекущего документа. -
domContentLoadedEventEnd: отметка времени непосредственно после завершения обработчика событияDOMContentLoadedтекущего документа. -
domComplete: отметка времени, когда загрузка документа и всех зависимых ресурсов завершена. -
loadEventStart: отметка времени непосредственно перед запуском обработчика событияloadтекущего документа. -
loadEventEnd: отметка времени непосредственно после завершения обработчика событияloadтекущего документа.
Другие свойства
Интерфейс PerformanceNavigationTiming предоставляет дополнительные свойства, такие как redirectCount, возвращающее количество перенаправлений, и type, указывающее тип навигации.
Пример
Метки времени domContentLoadedEventEnd и domContentLoadedEventStart могут быть использованы для измерения времени обработки обработчика события DOMContentLoaded.
Этот пример использует PerformanceObserver, который уведомляет вызывающую сторону о новых записях производительности navigation по мере их записи в временной шкале производительности браузера. Пример использует опцию buffered для доступа к записям, которые были записаны до создания наблюдателя.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const domContentLoadedTime =
entry.domContentLoadedEventEnd - entry.domContentLoadedEventStart;
console.log(
`${entry.name}: DOMContentLoaded processing time: ${domContentLoadedTime}ms`,
);
});
});
observer.observe({ type: "navigation", buffered: true });
Дополнительные примеры см. на страницах свойств в справочной документации PerformanceNavigationTiming.
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Navigation_timing