Почему первая краска происходит до того, как HTML начинает загружаться?

Я собираю данные с помощью API Navigation Timing.

В частности, эти четыре метрики:

// Time spent during redirection
var redirectTime = performance.timing.redirectEnd - performance.timing.redirectStart;

// DNS query time
var lookupDomainTime = performance.timing.domainLookupEnd - performance.timing.domainLookupStart;

// TCP connection time
var connectTime = performance.timing.connectEnd - performance.timing.connectStart;

// Time to first paint, in milliseconds.
var firstPaintTime = window.chrome.loadTimes().firstPaintTime * 1000 - performance.timing.navigationStart;

Я нахожу это на регулярной основе redirectTime + lookupDomainTime + connectTime > firstPaintTime, Если первая метрика рисования в Chrome рассчитывается по навигационной схеме StartStart, это означает, что первая рисование происходит до того, как будет загружен любой HTML-код. Это кажется невозможным.

Если firstPaintTime не рассчитывается из window.performance.timing.navigationStartс какого момента рассчитывается?

1 ответ

Решение

Это сделано для того, чтобы позволить цвету темы или фону последней страницы / вкладки оставаться до тех пор, пока новая страница не определит требуемый цвет.

Это предотвращает переход белых вспышек с темной страницы на темную.

Вы можете узнать больше об изменениях, внесенных в прошлом году в первоначальную раскраску, здесь: https://bugs.chromium.org/p/chromium/issues/detail?id=470669 Существует кроличья нора с билетами и ошибками, так что вы можете иметь исследовать, чтобы получить полную картину.

Другие вопросы по тегам