Performance API - Web API 接口参考 编辑
高时间采样率标准定义了Performance
接口,该接口支持应用程序中客户端的延时测量。Performance
接口被认为是高采样率的,因为其精确度可达千分之一毫秒(受硬件或软件限制)。这些接口支持许多使用情形,包括计算帧速率(在动画中可能很重要)和基准测试(例如加载资源的时间)。
由于平台的系统时钟会受到各种时滞(例如NTP调整)的影响,该接口支持单调时钟,即一直增加的时钟。 鉴于这个原因,Performance API定义了DOMHighResTimeStamp
类型,而不是使用Date.now()
接口。
DOMHighResTimeStamp
DOMHighResTimeStamp
类型,顾名思义,表示高采样率的时间戳。 此类型是 double
,由性能接口使用。 该值可以是离散时间戳,也可以是两个离散时间戳之间的时间间隔。
DOMHighResTimeStamp
的单位是毫秒,应精确到5 µs(微秒)。 但是,如果浏览器无法提供精确到5微秒的时间数值(例如由于硬件或软件限制),则浏览器可以将该值表示为精确到毫秒的时间(以毫秒为单位)。
方法
接口具有两个方法。Performance
now()
方法返回一个DOMHighResTimeStamp
,其值取决于navigation start
和作用域。如果作用域是window,则值是创建浏览器上下文的时间;如果作用域是worker
,则值是创建worker的时间。
toJSON()
方法返回Performance
对象的序列化结果,包含可以被序列化的属性。
属性
接口具有两个属性。Performance
timing
属性返回一个PerformanceTiming
对象,其中包含与延时相关的性能信息,例如导航开始的时间,重定向的开始时间和结束时间,响应的开始时间和结束时间等。
属性返回一个navigation
PerformanceNavigation
对象,该对象表示在给定浏览上下文中发生的导航类型,例如从历史记录导航到的页面,通过跟随链接导航到的页面等。
接口
Performance
- 提供方法和属性,包含给定页面与计时相关的性能信息。
PerformanceEntry
- 提供方法和属性,将单个性能指标封装为性能时间轴的一部分。
PerformanceFrameTiming
- 提供方法和属性,包含有关浏览器事件循环的帧计时数据。
PerformanceMark
- 条目类型为"
mark
"的PerformanceEntry
抽象接口,该类型的条目通过调用mark()
将命名的DOMHighResTimeStamp
(mark)添加到浏览器的性能时间轴来创建。 PerformanceMeasure
- 条目类型为"
measure
"的PerformanceEntry
抽象接口,该类型的条目通过调用measure()
在浏览器的性能时间轴的两个标记之间添加一个命名的DOMHighResTimeStamp
(measure)来创建。 PerformanceNavigationTiming
- 提供方法和属性,用于存储和检索有关浏览器文档导航事件的高采样率时间戳或其他指标。
PerformanceObserver
- 提供方法和属性,用于观察性能测量事件,并在浏览器的性能时间轴中记录新的
PerformanceEntry
时进行通知。 PerformanceResourceTiming
- 提供方法和属性,用于检索和分析有关应用程序资源加载的详细网络计时数据。
技术指标
技术指标 | 状态 | 备注 |
---|---|---|
High Resolution Time | Recommendation | Initial definition. |
High Resolution Time Level 2 | Recommendation | Adds performance attribute on Window and WorkerGlobalScope . |
High Resolution Time Level 3 | Editor's Draft | Add timeOrigin property to Performance interface. |
Frame Timing | Draft | Adds PerformanceFrameTiming interface. |
Navigation Timing | Recommendation | Adds the PerformanceTiming and PerformanceNavigation interfaces. Adds timing and navigation properties to the Performance interface. |
Navigation Timing Level 2 | Working Draft | Adds the PerformanceNavigationTiming interface. Obsolete's the the PerformanceTiming interface, the PerformanceNavigation interface, as well as the timing and navigation properties to the Performance interface. |
Performance Timeline | Recommendation | Adds the PerformanceEntry interface, the PerformanceEntryList type, as well as the getEntries() , getEntriesByType() , and getEntriesByName() methods on the Performance interface. |
Performance Timeline Level 2 | Candidate Recommendation | Adds serializer to the PerformanceEntry interface as well as adding the PerformanceObserver interface and callback |
Resource Timing Level 1 | Candidate Recommendation | Adds the PerformanceResourceTiming interface. Adds the clearResourceTimings() method, the setResourceTimingBufferSize() method, and the onresourcetimingbufferfull event handler to the Performance interface. Also adds the Timing-Allow-Origin response header. |
Resource Timing Level 2 | Working Draft | Adds the nextHopProtocol , workerStart , transferSize , encodedBodySize , and decodedBodySize properties to the PerformanceResourceTiming interface. |
Resource Timing Level 3 | Editor's Draft | |
User Timing | Recommendation | Adds mark() , clearMarks() , measure() and clearMeasures() methods to the Performance interface. Adds the PerformanceMark and PeformanceMeasure interfaces. |
User Timing Level 2 | Working Draft |
实施状态
As shown in the Performance
interface's Browser Compatibility table, most of these interfaces are broadly implemented by desktop browsers.
如Performance
接口的“浏览器兼容性”表所示,大部分接口由桌面浏览器广泛实现。
要测试你的浏览器对Performance
接口的支持,请运行 perf-api-support
应用。
另见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论