性能 API
性能 API 是一组用于衡量 Web 应用程序性能的标准。
概念和用法
为了确保 Web 应用程序快速运行,衡量和分析各种性能指标非常重要。性能 API 提供了重要的内置指标,以及将您自己的测量结果添加到浏览器性能时间轴的功能。性能时间轴包含高精度时间戳,可以在开发者工具中显示。您还可以将其数据发送到分析端点,以记录一段时间内的性能指标。
每个性能指标都由单个 PerformanceEntry
表示。性能条目具有 name
、duration
、startTime
和 type
。所有性能指标都扩展了 PerformanceEntry
接口并对其进行了进一步限定。
大多数性能条目无需您进行任何操作即可自动记录,然后可以通过 Performance.getEntries()
或(最好)通过 PerformanceObserver
访问。例如,对于超过设定阈值的事件,会记录 PerformanceEventTiming
条目。但是,性能 API 还使您能够使用 PerformanceMark
和 PerformanceMeasure
接口定义和记录您自己的自定义事件。
主要 Performance
接口在 Window
和 Worker
全局作用域中都可用,并且使您能够添加自定义性能条目、清除性能条目以及检索性能条目。
PerformanceObserver
接口使您能够在记录各种类型的性能条目时进行监听。
有关更多概念信息,请参阅下面的 性能 API 指南。
参考
性能 API 中提供了以下接口
EventCounts
-
由
performance.eventCounts
返回的只读映射,其中包含每个事件类型已分派的事件数。 LargestContentfulPaint
-
衡量视口中可见的最大图像或文本块的渲染时间,从页面开始加载时记录。
LayoutShift
-
根据页面上元素的移动,提供对网页布局稳定性的见解。
LayoutShiftAttribution
-
提供有关已移动元素的调试信息。
Performance
-
访问性能测量的主要接口。使用
Window.performance
或WorkerGlobalScope.performance
可用于窗口和工作线程上下文。 PerformanceElementTiming
-
衡量特定元素的渲染时间戳。
PerformanceEntry
-
性能时间轴上的一个条目,封装单个性能指标。所有性能指标都继承自此接口。
PerformanceEventTiming
-
衡量事件的延迟和首次输入延迟 (FID)。
PerformanceLongAnimationFrameTiming
-
提供有关 长动画帧 (LoAFs) 的指标,这些帧占用渲染并阻止其他任务执行。
PerformanceLongTaskTiming
-
提供有关 长任务 的指标,这些任务占用渲染并阻止其他任务执行。
PerformanceMark
-
您在性能时间轴上自己的条目的自定义标记。
PerformanceMeasure
-
两个性能条目之间的自定义时间测量。
-
衡量文档导航事件,例如加载文档所需的时间。
PerformanceObserver
-
在性能时间轴中记录新性能条目时对其进行监听。
PerformanceObserverEntryList
-
在性能观察器中观察到的条目的列表。
PerformancePaintTiming
-
衡量网页构建期间的渲染操作。
PerformanceResourceTiming
-
衡量网络加载指标,例如重定向开始和结束时间、获取开始时间、DNS 查找开始和结束时间、图像、脚本、获取调用等资源的响应开始和结束时间等。
PerformanceScriptTiming
-
提供有关导致 长动画帧 (LoAFs) 的各个脚本的指标。
PerformanceServerTiming
-
显示与
Server-Timing
HTTP 标头一起发送的服务器指标。 TaskAttributionTiming
-
识别任务的类型以及负责长任务的容器。
VisibilityStateEntry
-
衡量页面可见性状态变化的时间,即选项卡从前台切换到后台或反之亦然的时间。
指南
规范
规范 |
---|
元素计时 API |
事件计时 API |
高分辨率时间 |
最大内容绘制 |
布局不稳定性 |
长任务 API |
导航计时级别 2 |
绘制计时 |
性能时间轴 |
资源计时 |
服务器计时 |
用户计时 |