PerformanceLongAnimationFrameTiming

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细检查 浏览器兼容性表格

PerformanceLongAnimationFrameTiming 接口在长动画帧 API 中指定,并提供有关占用渲染并阻止执行其他任务的长动画帧 (LoAF) 的指标。

描述

长动画帧 (LoAF) 是延迟超过 50 毫秒的渲染更新。LoAF 可能会导致用户界面 (UI) 更新缓慢,使控件看起来没有响应,并导致 卡顿(不流畅)的动画效果和滚动。这通常会导致用户感到沮丧。

PerformanceLongAnimationFrameTiming 接口提供了以下关于 LoAF 的详细的信息集,允许开发人员缩小其根本原因

继承

PerformanceLongAnimationFrameTiming 继承自 PerformanceEntry

PerformanceEntry PerformanceLongAnimationFrameTiming

实例属性

此接口为长动画帧性能条目扩展了以下 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 的浏览器中加载。

另请参阅