PerformanceElementTiming: свойство renderTime
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Экспериментально: Это экспериментальная технология .
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.
Чтение-только свойство renderTime интерфейса PerformanceElementTiming возвращает время отрисовки связанного элемента.
Значение
Значение типа DOMHighResTimeStamp с временем отрисовки элемента.
Для изображений это будет временная метка отрисовки изображения. Она определяется как следующий рендеринг, который происходит после того, как изображение полностью загрузится. Если проверка временных ограничений не выполняется (как определено в заголовке Timing-allow-origin), это вернет 0.
Для текстовых узлов это будет временная метка отрисовки текста. Она определяется как момент, когда элемент становится нарисованным текстом.
Примеры
Ведение журнала renderTime
В этом примере элемент <img> наблюдается путём добавления атрибута elementtiming. Регистрируется PerformanceObserver для получения всех записей производительности типа "element" и используется флаг buffered, чтобы получить данные до создания наблюдателя. Вызов entry.renderTime возвращает время отрисовки элемента изображения.
<img src="image.jpg" alt="a nice image" elementtiming="big-image" id="myImage" />
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
if (entry.identifier === "big-image") {
console.log(entry.renderTime);
}
});
});
observer.observe({ type: "element", buffered: true });
Время отрисовки изображения с разных доменов
По соображениям безопасности, значение свойства renderTime первоначально было 0, если ресурс был запросом с другого домена. Вместо этого следует использовать свойство loadTime в качестве резервного варианта.
Браузеры могут теперь показывать немного грубоватое время отрисовки в таких ситуациях. Проверьте поддержку браузера в таблице совместимости.
Чтобы получить более точную информацию о времени отрисовки с разных доменов, необходимо установить заголовок HTTP Timing-Allow-Origin.
Например, чтобы позволить https://developer.mozilla.org видеть точное renderTime, ресурс с другого домена должен отправлять:
Timing-Allow-Origin: https://developer.mozilla.org
В качестве альтернативы, можно использовать startTime, который возвращает значение renderTime записи, если оно не 0, и в противном случае значение loadTime этой записи. Однако рекомендуется устанавливать заголовок Timing-Allow-Origin, чтобы метрики были более точными.
Если вы используете startTime, вы можете отметить любые неточности, проверив, использовалось ли renderTime:
const isRenderTime = entry.renderTime ? true : false;
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
renderTime |
77 | 79 | Нет | 64 | Нет | 77 | Нет | 55 | Нет | 12.0 | 77 |
© 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/PerformanceElementTiming/renderTime