最大内容绘制:renderTime 属性

renderTimeLargestContentfulPaint 接口的只读属性,它表示元素渲染到屏幕上的时间。

renderTime 属性可以具有以下值

  • 表示元素渲染到屏幕上时间的毫秒数的 时间戳
  • 如果资源是跨域请求,并且没有使用 Timing-Allow-Origin HTTP 响应标头,则为 0

示例

记录最大内容绘制的 renderTime

此示例使用 PerformanceObserver,它在浏览器性能时间轴中记录新 largest-contentful-paint 性能条目时发出通知。buffered 选项用于访问观察者创建之前的条目。

js
const observer = new PerformanceObserver((list) => {
  const entries = list.getEntries();
  const lastEntry = entries[entries.length - 1]; // Use the latest LCP candidate
  console.log(lastEntry.renderTime);
});
observer.observe({ type: "largest-contentful-paint", buffered: true });

跨域图像渲染时间

出于安全原因,如果资源是跨域请求,则 renderTime 属性的值为 0。相反,将公开 loadTime。要公开跨域渲染时间信息,需要设置 Timing-Allow-Origin HTTP 响应标头。

例如,要允许 https://mdn.org.cn 查看 renderTime,跨域资源应发送

http
Timing-Allow-Origin: https://mdn.org.cn

或者,您可以使用 startTime,如果它不为 0,则返回条目的 renderTime 值,否则返回此条目的 loadTime 值。但是,建议设置 Timing-Allow-Origin 标头,以便指标更准确。

如果使用 startTime,则可以通过检查是否使用了 renderTime 来标记任何不准确之处

js
const isAccurateLCP = entry.renderTime ? true : false;

规范

规范
最大内容绘制
# dom-largestcontentfulpaint-rendertime

浏览器兼容性

BCD 表格仅在浏览器中加载