Устаревшая загрузка домена удалена! Что использовать вместо этого? - PullRequest
2 голосов
/ 27 апреля 2019

Время domLoading представляет самое начало браузера, обрабатывающего документ .

enter image description here

Но атрибут синхронизации domLoading удален из API синхронизации: performance.getEntriesByType("navigation")[0].domLoading == undefined

I найдено мотивацияс 17 сентября 2015 года:

Атрибут domLoading устарел и может быть удален в будущих версиях данной спецификации.Из-за различий в том, когда объект Document создается в существующих пользовательских агентах, значение, возвращаемое domLoading, зависит от реализации и не должно использоваться в значимых метриках .

Ни MDN скажите, что использовать вместоМне очень странно, что я не нашел никаких вопросов по этому поводу.ResponseEnd и domInteractive - ближайшие атрибуты времени, которые я вижу, но они слишком сильно различаются.

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

Есть ли правильная ссылка для измерения и сравнения, с которой я пропустил или могу использовать вместо ?

var nt = performance.getEntriesByType("navigation")[0],
    /* domLoading = nt.domLoading; <<< Error: undefined */
    domLoading = nt.responseEnd; //Not correct? Hopefully same.

console.log("Dom parsed in " + (nt.domInteractive - domLoading) + " ms")

console.log("Dom ready in " + (nt.domContentLoadedEventStart - domLoading) + " ms")

console.log("Dom complete in " + (nt.domComplete - domLoading) + " ms")

Я нашел эту новую временную шкалу на w3c.github.io, показывающую, что нет начала измерения, начиная с ..

Navigation Timing level 2

1 Ответ

0 голосов
/ 15 мая 2019

Стандарты w3c говорят, что domLoading больше не находится в PerformanceNavigationTiming
Chrome и Firefox устанавливают performance.domLoading == undefined, но свойство все еще там. Вы можете увидеть это в консоли.

console.log(JSON.stringify(performance.timing).split(/[{,}]/).join('\n'))

Поместите это в начало <head>, чтобы вернуть его обратно:

<script>
  Performance.prototype.domLoading = performance.now()
</script>

Это работает, потому что DOM только начал анализировать страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...