Почему window.performance.timing.domContentLoadedEventStart возвращает 0
Ниже мой код функции js.
console.log(window.performance.timing);
console.log(window.performance.timing.domContentLoadedEventStart);
Когда я запускаю приведенный выше код, запустив мой js file
, window.performance.timing
возвращает object
в котором domContentLoadedEventStart
имеет какое-то значение. Но когда я попытался напечатать window.performance.timing.domContentLoadedEventStart
он возвращает 0.
Не уверен, что происходит. Может кто-нибудь объяснить мне.
1 ответ
window.performance.timing
Это свойство имеет PerformanceTiming
объект, описывающий вашу страницу.
PerformanceTiming.domContentLoadedEventStart
PerformanceTiming.domContentLoadedEventStart
свойство имеет значение, представляющее момент непосредственно перед тем, как синтаксический анализатор отправил DOMContentLoaded
событие, в миллисекундах с эпохи UNIX.
DOMContentLoaded
событие
DOMContentLoaded
событие вызывается, когда исходный HTML-документ полностью загружен и проанализирован, не дожидаясь окончания загрузки таблиц стилей, изображений и подкадров.
Причина по которой window.performance.timing.domContentLoadedEventStart
дал вам 0
Ваш сценарий был выполнен до DOMContentLoaded
Произошло событие, поэтому в момент, когда парсер отправил DOMContentLoaded
событие, было неизвестно в то время.
Чтобы предотвратить это
Предотвращать PerformanceTiming.domContentLoadedEventStart
из того 0
, вы должны отослать его после DOMContentLoaded
событие происходит. Попробуй это:
document.addEventListener("DOMContentLoaded", event => {
console.info("DOM fully loaded and parsed.");
console.info(window.performance.timing.domContentLoadedEventStart);
});
или же
<script defer src="...">
,