Performance Timeline - 定义了 Performance 接口的扩展

Performance Timeline API 定义了 Performance 接口的扩展,以支持应用程序内的客户端延迟测量。这些扩展提供了基于特定过滤条件检索 性能条目指标的接口。该标准还包括允许应用程序定义_性能观察器_回调的接口,当特定性能事件添加到浏览器的性能时间线时会通知这些回调。

本文档提供了标准接口的概述。有关接口的更多详细信息,请参阅参考页面和 使用性能时间线

注意: 此特性在 Web Worker 中可用。

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

实现状况

下面提供了接口实现状态的摘要,包括指向更详细信息的链接。

要测试浏览器对这些接口的支持,请运行 perf-api-support 应用程序。

相关链接