PerformanceLongAnimationFrameTiming
PerformanceLongAnimationFrameTiming
接口在长动画帧 API 中指定,并提供有关占用渲染并阻止执行其他任务的长动画帧 (LoAF) 的指标。
描述
长动画帧 (LoAF) 是延迟超过 50 毫秒的渲染更新。LoAF 可能会导致用户界面 (UI) 更新缓慢,使控件看起来没有响应,并导致 卡顿(不流畅)的动画效果和滚动。这通常会导致用户感到沮丧。
PerformanceLongAnimationFrameTiming
接口提供了以下关于 LoAF 的详细的信息集,允许开发人员缩小其根本原因
- 每个 LoAF 的详细时间戳集。
- 通过
PerformanceLongAnimationFrameTiming.scripts
属性,有关每个导致创建 LoAF 的脚本的详细信息。这将返回一个PerformanceScriptTiming
对象数组,每个脚本一个。
继承
PerformanceLongAnimationFrameTiming
继承自 PerformanceEntry
。
实例属性
此接口为长动画帧性能条目扩展了以下 PerformanceEntry
属性
PerformanceEntry.duration
只读 实验性-
返回一个
DOMHighResTimeStamp
,表示以毫秒为单位处理整个 LoAF 所花费的时间。 PerformanceEntry.entryType
只读 实验性-
返回条目类型,始终为
"long-animation-frame"
。 PerformanceEntry.name
只读 实验性-
返回条目名称,始终为
"long-animation-frame"
。 PerformanceEntry.startTime
只读 实验性-
返回一个
DOMHighResTimeStamp
,表示动画帧开始的时间。
此接口还支持以下属性
PerformanceLongAnimationFrameTiming.blockingDuration
只读 实验性-
返回一个
DOMHighResTimeStamp
,指示主线程被阻止响应高优先级任务(如用户输入)的总时间(以毫秒为单位)。这是通过获取 LoAF 中所有duration
超过50ms
的 长任务,从每个任务中减去50ms
,将渲染时间添加到最长任务时间,并将结果相加来计算的。 PerformanceLongAnimationFrameTiming.firstUIEventTimestamp
只读 实验性-
返回一个
DOMHighResTimeStamp
,指示当前动画帧期间排队第一个 UI 事件(例如鼠标或键盘事件)的时间。 PerformanceLongAnimationFrameTiming.renderStart
只读 实验性-
返回一个
DOMHighResTimeStamp
,指示渲染周期的开始时间,其中包括Window.requestAnimationFrame()
回调、样式和布局计算、ResizeObserver
回调和IntersectionObserver
回调。 PerformanceLongAnimationFrameTiming.scripts
只读 实验性-
返回一个
PerformanceScriptTiming
实例数组。 PerformanceLongAnimationFrameTiming.styleAndLayoutStart
只读 实验性-
返回一个
DOMHighResTimeStamp
,指示当前动画帧的样式和布局计算所花费的时间段的开始。
实例方法
PerformanceLongAnimationFrameTiming.toJSON()
实验性-
返回
PerformanceLongAnimationFrameTiming
对象的 JSON 表示形式。
示例
有关长动画帧 API 的示例,请参阅 长动画帧计时。
规范
规范 |
---|
长动画帧 API # sec-PerformanceLongAnimationFrameTiming |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。