这篇翻译不完整。请帮忙从英语翻译这篇文章

Performance 接口可以获取到当前页面与性能相关的信息。它是 High Resolution Time API 的一部分,同时也融合了 Performance Timeline API、Navigation Timing API、 User Timing API 和 Resource Timing API

该类型的对象可以通过调用只读属性 Window.performance 来获得。

注意:除了以下指出的情况外,该接口及其成员在 Web Worker 中可用。此外,还需注意,性能 markers 和 measures 是依赖上下文的。如果你在主线程(或者其他 worker)中创建了一个 mark,那么它在 worker 线程中是不可用的;反之亦然。

属性

Performance 接口没有继承任何属性。

Performance.navigation 只读 Not available to workers
PerformanceNavigation 对象提供操作(包含在 timing 里时间)的有用上下文,包括页面是加载还是刷新、发生了多少次重定向,等等。
Performance.timing 只读 Not available to workers
PerformanceTiming 对象包含延迟相关的性能信息。
performance.memory
Chrome 添加的一个非标准扩展,这个属性提供了一个可以获取到基本内存使用情况的对象。你不应该使用这个非标准的 API。

事件处理程序

Performance.onresourcetimingbufferfull
一个 EventTarget,这是个回调,当触发 resourcetimingbufferfull 事件的时候会被调用。

方法

Performance 接口没有继承任何方法。

Performance.clearMarks()
移除给定的 mark,从浏览器的性能输入缓冲区中
Performance.clearMeasures()
移除给定的 measure,从浏览器的性能输入缓冲区中
Performance.clearResourceTimings()
移除所有的 entryType 是 "resource" 的  performance entries,从浏览器的性能数据缓冲区中
Performance.getEntries()
返回一个 PerformanceEntry 对象的列表,基于给定的 filter
Performance.getEntriesByName()
返回一个 PerformanceEntry 对象的列表,基于给定的 name 和 entry type
Performance.getEntriesByType()
返回一个 PerformanceEntry 对象的列表,基于给定的 entry type
Performance.mark()
在浏览器的性能输入缓冲区中创建一个 timestamp,基于给定的 name
Performance.measure()
在浏览器的指定 start mark 和 end mark 间的性能输入缓冲区中创建一个指定的 timestamp
Performance.now()
返回一个 DOMHighResTimeStamp,表示从参考时刻开始经过的毫秒量
Performance.setResourceTimingBufferSize()
将浏览器的资源 timing 缓冲区的大小设置为 "resource" type performance entry 对象的指定数量
Performance.toJSON() Not available to workers
是一个 JSON 格式转化器,返回 Performance 对象的 JSON 对象

规范

Specification Status Comment
High Resolution Time Level 2
toJSON()
Candidate Recommendation Defines toJson() method.
High Resolution Time
Performance
Recommendation Defines now() method.
Navigation Timing
Performance
Recommendation Defines timing and navigation properties.
Performance Timeline Time Level 2
Performance extensions
Editor's Draft Changes getEntries() interface.
Performance Timeline
Performance extensions
Recommendation Defines getEntries(), getEntriesByType() and getEntriesByName() methods.
Resource Timing Level 1
Performance extensions
Candidate Recommendation Defines clearResourceTimings() and setResourceTimingBufferSize() methods and the onresourcetimingbufferfull property.
User Timing Level 2
Performance extensions
Editor's Draft Clarifies mark(), clearMark(), measure() and clearMeasure() methods.
User Timing
Performance extensions
Recommendation Defines mark(), clearMark(), measure() and clearMeasure() methods.

浏览器兼容性

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (timing attribute) 6.0 [1] (Yes) 7.0 (7.0) 9.0 15.0 8
navigation attribute 9 ? 7 (7) 9.0 15 8
now() on regular context 20.0 -webkit
24.0
? 15.0 (15.0) 10.0 (Yes) 8
now() in Web workers. 33.0 ? 34.0 (34.0) ? (Yes) 未实现
toJSON() 未实现 ? 25.0 (25.0) 9.0 未实现 未实现
getEntries(), getEntriesByType(), getEntriesByName() (Yes) ? (Yes) (Yes) (Yes) 11
clearResourceTimings(), setResourceTimingBufferSize() (Yes) ? (Yes) (Yes) (Yes) 未实现
onresourcetimingbufferfull (Yes) ? (Yes) 未实现 (Yes) 未实现
mark(), clearMarks(), measure(), clearMeasure() 43.0 ? 41 10 33 未实现
Feature Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support (Yes) (Yes) (Yes) 7.0 (7.0) 1.0 (7.0) 9.0 15.0 9 (Yes)
navigation attribute 未实现 (Yes) ? 未实现 未实现 9.0 (Yes) 9 (Yes)
now() on regular context   25.0 ? 15.0 (15.0) 1.0 (15.0) 10.0 (Yes) 9 20.0 webkit
25.0
now() in Web workers. 未实现 (Yes) ? 34.0 (34.0) ? ? ? ? (Yes)
toJSON() 未实现 未实现 ? 25.0 (25.0) 1.2 (25.0) 10.0 未实现 ? 未实现
getEntries(), getEntriesByType(), getEntriesByName() 4.4 (Yes) ? 25.0 (25.0) 1.2 (25.0) 10.0 33 11 59
clearResourceTimings(), setResourceTimingBufferSize() 未实现 (Yes) ? (Yes) (Yes) (Yes) 33 未实现 (Yes)
onresourcetimingbufferfull 未实现 (Yes) ? (Yes) ? 未实现 33 未实现 (Yes)
mark(), clearMarks(), measure(), clearMeasure() 未实现 46.0 ? 42 42 10 33 未实现 46.0

[1] 以 webkit 为前缀的成员已被删除或弃用

文档标签和贡献者

 此页面的贡献者: anjia, Ende93, xgqfrms-GitHub, xtx1130, HuazhuLi, wenshin, teoli
 最后编辑者: anjia,