PerformancePaintTiming - 提供有关 “绘制” 操作的时序信息
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
PerformancePaintTiming
是 Paint Timing 的接口,在网页构建期间提供有关 “绘制”(也称为 “渲染”)操作的时序信息。“绘制” 是指将渲染树转换为屏幕上的像素。
应用程序可以为 “paint
” 性能指标类型
注册 PerformanceObserver
,观察者可以检索绘制事件发生的时间。使用此信息可以帮助您确定花费了太长时间才能提供良好用户体验的地方。
属性
该接口没有属性,但是通过如下限定和约束属性来扩展 PerformanceEntry
的属性(用于 “paint
” 性能指标类型
),如下所示:
PerformanceEntry.entryType
返回 “paint
”。
PerformanceEntry.name
返回 “first-paint
” 或 “first-contentful-paint
”。
PerformanceEntry.startTime
返回一个 timestamp
,表示绘制的时间。
PerformanceEntry.duration
返回 0
。
方法
该接口没有方法。
实例
function showPaintTimings() {
if (window.performance) {
let performance = window.performance;
let performanceEntries = performance.getEntriesByType('paint');
performanceEntries.forEach( (performanceEntry, i, entries) => {
console.log(performanceEntry.name + " 的时间为 " + performanceEntry.startTime + " 毫秒。");
});
} else {
console.log('不支持性能计时。');
}
}
上面的代码产生控制台输出,类似下面所示:
first-paint 的时间为 2789.915 毫秒。
first-contentful-paint 的时间为 2787.460 毫秒。
规范
规范 | 状态 | 备注 |
---|---|---|
Paint Timing PerformancePaintTiming 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 60 | 未知 | 未知 | 未知 | 47 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 60 | 60 | 未知 | 未知 | 未知 | 44 | 未知 |