性能 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-TimingHTTP 标头一起发送的服务器指标。 TaskAttributionTiming-
识别任务的类型以及负责长任务的容器。
VisibilityStateEntry-
衡量页面可见性状态变化的时间,即选项卡从前台切换到后台或反之亦然的时间。
指南
规范
| 规范 |
|---|
| 元素计时 API |
| 事件计时 API |
| 高分辨率时间 |
| 最大内容绘制 |
| 布局不稳定性 |
| 长任务 API |
| 导航计时级别 2 |
| 绘制计时 |
| 性能时间轴 |
| 资源计时 |
| 服务器计时 |
| 用户计时 |