Performance Timeline - 定义了 Performance 接口的扩展
Performance Timeline API 定义了 Performance
接口的扩展,以支持应用程序内的客户端延迟测量。这些扩展提供了基于特定过滤条件检索 性能条目指标的接口。该标准还包括允许应用程序定义_性能观察器_回调的接口,当特定性能事件添加到浏览器的性能时间线时会通知这些回调。
本文档提供了标准接口的概述。有关接口的更多详细信息,请参阅参考页面和 使用性能时间线。
Performance 扩展
Performance Timeline API 扩展了 Performance
接口的三个方法,这些方法提供了不同的机制来获取一组 性能记录(指标)
,具体取决于指定的过滤条件。方法是:
getEntries()
返回所有记录的性能条目
,或者根据指定的名称
、性能类型
和 / 或发起者类型
(例如 HTML 元素)返回相应的条目。
getEntriesByName()
getEntriesByType()
PerformanceEntry 接口
PerformanceEntry
接口封装了单个性能条目 —— 即性能时间线中的单个数据点或指标。这个接口有以下四个属性,这些属性是由其他接口(比如 PerformanceMark
)扩展的(有额外的约束):
name
创建指标时性能条目的名称。
entryType
性能指标的类型(例如,“mark
”)。
startTime
一个高精度时间
,表示性能条目的开始时间。
duration
一个高精度时间
,表示性能事件持续时间的时间值。(某些性能条目类型没有 持续时间的概念,对于此类类型,此值设置为 “0
”。)
此接口包含一个 toJSON()
方法,该方法返回 PerformanceEntry
对象的序列化。不同 类型
的性能条目序列化内容不同。
性能观察器
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
性能观察器接口允许应用程序为特定性能事件类型注册观察器,并且当记录这些事件类型之一时,应用程序通过在创建观察器时指定的观察器回调函数收到事件通知。
当调用观察者(回调)时,回调的参数包括一个仅包含观察到的性能条目
的*性能观察器条目列表
。也就是说,该列表仅包含调用观察者的 observe()
方法时指定的事件类型的条目。性能观察器条目列表
接口与 Performance
接口具有三个相同的 getEntries*()
方法。但是,请注意这些方法有一个主要区别;性能观察者条目列表
版本用于在观察者回调中检索观察*到的性能条目。
除了 PerformanceObserver
接口的 observe()
方法(用于注册要观察的条目类型
)之外,PerformanceObserver
接口还有一个 disconnect()
方法,可以阻止观察者接收更多事件。
性能观察器被添加到标准的 Level 2
版本中,但并未得到广泛实现。
规范
规范 |
---|
Performance Timeline |
实现状况
下面提供了接口实现状态的摘要,包括指向更详细信息的链接。
-
性能接口扩展:如
Performance
接口的浏览器兼容性表所示,这些接口大多由桌面浏览器广泛实现,在移动设备上支持较少。 -
PerformanceEntry:如
PerformanceEntry
接口的浏览器兼容性表所示,这些接口大多由桌面浏览器广泛实现,在移动设备上支持较少。 -
Performance Observers :如
PerformanceObserver
接口的浏览器兼容性表所示,该接口没有交付实现。
要测试浏览器对这些接口的支持,请运行 perf-api-support 应用程序。