Performance API - Web APIs 编辑

The High Resolution Time standard defines a Performance interface that supports client-side latency measurements within applications. The Performance interfaces are considered high resolution because they are accurate to a thousandth of a millisecond (subject to hardware or software constraints). The interfaces support a number of use cases including calculating frame-rates (potentially important in animations) and benchmarking (such as the time to load a resource).

Since a platform's system clock is subject to various skews (such as NTP adjustments), the interfaces support a monotonic clock i.e. a clock that is always increasing. As such, the Performance API defines a DOMHighResTimeStamp type rather than using the Date.now() interface.

DOMHighResTimeStamp

The DOMHighResTimeStamp type, as its name implies, represents a high resolution point in time. This type is a double and is used by the performance interfaces. The value could be a discrete point in time or the difference in time between two discrete points in time.

The unit of DOMHighResTimeStamp is milliseconds and should be accurate to 5 µs (microseconds). However, If the browser is unable to provide a time value accurate to 5 microseconds (because, for example, due to hardware or software constraints), the browser can represent the value as a time in milliseconds accurate to a millisecond.

Methods

The Performance interface has two methods. The now() method returns a DOMHighResTimeStamp whose value that depends on the navigation start and scope. If the scope is a window, the value is the time the browser context was created and if the scope is a worker, the value is the time the worker was created.

The toJSON() method returns a serialization of the Performance object, for those attributes that can be serialized.

Properties

The Performance interface has two properties. The timing property returns a PerformanceTiming object containing latency-related performance information such as the start of navigation time, start and end times for redirects, start and end times for responses, etc.

The navigation property returns a PerformanceNavigation object representing the type of navigation that occurs in the given browsing context, such as the page was navigated to from history, the page was navigated to by following a link, etc.

Interfaces

Performance
Provides methods and properties containing timing-related performance information for the given page.
PerformanceEntry
Provides methods and properties the encapsulate a single performance metric that is part of the performance timeline.
PerformanceFrameTiming
Provides methods and properties containing frame timing data about the browser's event loop.
PerformanceMark
An abstract interface for performance entries with an entry type of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline.
PerformanceMeasure
An abstract interface for performance entries with an entry type of "measure". Entries of this type are created by calling performance.measure() to add a namedDOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline.
PerformanceNavigationTiming
Provides methods and properties to store and retrieve high resolution timestamps or metrics regarding the browser's document navigation events.
PerformanceObserver
Provides methods and properties used to observe performance measurement events and be notified of new performance entries as they are recorded in the browser's performance timeline.
PerformanceResourceTiming
Provides methods and properties for retrieving and analyzing detailed network timing data regarding the loading of an application's resources.

Specifications

SpecificationStatusComment
High Resolution TimeRecommendationInitial definition.
High Resolution Time Level 2RecommendationAdds performance attribute on Window and WorkerGlobalScope.
High Resolution Time Level 3Editor's DraftAdd timeOrigin property to Performance interface.
Frame TimingDraftAdds PerformanceFrameTiming interface.
Navigation TimingRecommendationAdds the PerformanceTiming and PerformanceNavigation interfaces. Adds timing and navigation properties to the Performance interface.
Navigation Timing Level 2Working DraftAdds the PerformanceNavigationTiming interface. Obsolete's the PerformanceTiming interface, the PerformanceNavigation interface, as well as the timing and navigation properties to the Performance interface.
Performance TimelineRecommendationAdds the PerformanceEntry interface, the PerformanceEntryList type, as well as the getEntries(), getEntriesByType(), and getEntriesByName() methods on the Performance interface.
Performance Timeline Level 2Candidate RecommendationAdds serializer to the PerformanceEntry interface as well as adding the PerformanceObserver interface and callback
Resource Timing Level 1Candidate RecommendationAdds 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 2Working DraftAdds the nextHopProtocol, workerStart, transferSize, encodedBodySize, and decodedBodySize properties to the PerformanceResourceTiming interface.
Resource Timing Level 3Editor's Draft
User TimingRecommendationAdds mark(), clearMarks(), measure() and clearMeasures() methods to the Performance interface. Adds the PerformanceMark and PeformanceMeasure interfaces.
User Timing Level 2Working Draft

Implementation status

As shown in the Performance interface's Browser Compatibility table, most of these interfaces are broadly implemented by desktop browsers.

To test your browser's support for the Performance interface, run the perf-api-support application.

See also

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:64 次

字数:13285

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文