PerformanceNavigationTiming: свойство domInteractive
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с октября 2021 года.
Чтение только свойство domInteractive возвращает DOMHighResTimeStamp, представляющий момент времени непосредственно перед тем, как пользовательский агент установит для документа readyState в значение "interactive".
Примечание: Это свойство не является временем до интерактивности (TTI). Это свойство относится к моменту времени, когда построение DOM завершено и взаимодействие с ним из JavaScript возможно. Также см. состояние interactive Document.readyState, соответствующее этому свойству.
Измерение времени обработки DOM может быть некритичным, если у вашего сайта очень большой HTML-код для построения Document Object Model.
Если нет блокирующего парсер JavaScript, то событие DOMContentLoaded (см. domContentLoadedEventStart для отметки времени) сработает сразу после domInteractive.
Значение
A DOMHighResTimeStamp представляющий момент времени непосредственно перед тем, как пользовательский агент установит для документа readyState в значение "interactive".
Примеры
Ведение журнала времени взаимодействия с DOM
Свойство domInteractive может использоваться для ведения журнала времени, когда завершено построение DOM и взаимодействие с ним возможно.
Пример с использованием PerformanceObserver, который уведомляет о новых записях производительности navigation по мере их записи в временной шкале производительности браузера. Используйте параметр buffered для доступа к записям, предшествующим созданию наблюдателя.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
console.log(
`${entry.name}: domInteractive time: ${entry.domInteractive}ms`,
);
});
});
observer.observe({ type: "navigation", buffered: true });
Пример с использованием Performance.getEntriesByType(), который отображает только записи производительности navigation в временной шкале производительности браузера на момент вызова этого метода:
const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
console.log(`${entry.name}: domInteractive time: ${entry.domInteractive}ms`);
});
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
domInteractive |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 |
См. также
© 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/PerformanceNavigationTiming/domInteractive