最大内容绘制:renderTime 属性
renderTime
是 LargestContentfulPaint
接口的只读属性,它表示元素渲染到屏幕上的时间。
值
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 表格仅在浏览器中加载