PerformanceLongAnimationFrameTiming

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

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

PerformanceLongAnimationFrameTiming 接口在 Long Animation Frames API 中进行了规定,它提供了关于长时间动画帧(LoAF)的度量,这些帧会占用渲染并阻塞其他任务的执行。

描述

长时间动画帧(LoAF)是指延迟超过 50ms 的渲染更新。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长时间任务,从每个任务的 duration 中减去 50ms,将渲染时间加到最长任务时间上,然后将结果相加。

PerformanceLongAnimationFrameTiming.firstUIEventTimestamp 只读 实验性

返回一个 DOMHighResTimeStamp,表示当前动画帧期间排队等待的第一个 UI 事件(如鼠标或键盘事件)的时间。

PerformanceLongAnimationFrameTiming.renderStart 只读 实验性

返回一个 DOMHighResTimeStamp,表示渲染周期的开始时间,其中包括 Window.requestAnimationFrame() 回调、样式和布局计算、ResizeObserver 回调以及 IntersectionObserver 回调。

PerformanceLongAnimationFrameTiming.scripts 只读 实验性

返回一个 PerformanceScriptTiming 实例的数组。

PerformanceLongAnimationFrameTiming.styleAndLayoutStart 只读 实验性

返回一个 DOMHighResTimeStamp,表示当前动画帧中用于样式和布局计算的时间段的开始时间。

实例方法

PerformanceLongAnimationFrameTiming.toJSON() 实验性

返回 PerformanceLongAnimationFrameTiming 对象的 JSON 表示形式。

示例

有关 Long Animation Frames API 的示例,请参阅 长动画帧计时

规范

规范
Long Animation Frames API
# sec-PerformanceLongAnimationFrameTiming

浏览器兼容性

另见