自定义时间测量API - Web API 接口参考 编辑
User Timing
接口允许开发者在浏览器性能时间线中创建针对特定应用的 时间戳
。有两种自定义时间测量事件类型:"mark
" 事件类型
和"measure
" 事件类型
。
mark事件可以指定任意的名字并且可以在放在应用的任何位置,measure
事件也可以指定为任意的名字,但是需要放在两个mark之间,所以它实际上是两个mark的中间点。
此文档提供了对mark和
measure
性能事件类型
的概览,包括四个拓展了Performance
接口的User Timing
方法。 想要了解这两种性能事件类型和相关方法的更多详细内容和示例代码,请查阅使用自定义时间测量API。
性能标记
性能标记
是一个由应用创建并指定名称的性能条目
。这个标记是浏览器性能时间线上的一个时间戳
。
创建一个性能标记
performance.mark()
方法被用来创建一个性能标记。这个方法需要一个参数,标记的名称(例如performance.mark("mark-1")
)。
标记的
性能入口
包含以下属性值:
entryType
- 设置为"mark
".name
- 设置为创建该标记时"name
"参数传入的值startTime
- 设置为标记
被取消时的时间戳
。duration
- 设置为"0
" (一个没有时间间隔的标记)
检索一个性能标记
Performance
接口有三个方法可以用来检索标记:
performance.getEntries()
- 返回性能时间线上的所有
性能条目
。通过筛选entryType
属性为"mark
"的条目来获取所有标记
条目。 performance.getEntriesByType(entryType)
- 返回性能事件线上具有指定
entryType
的性能条目
,通过将entryType
设置为"mark
"来获取所有标记条目。 performance.getEntriesByName(name, entryType)
- 返回性能时间线上具有指定
name
和entryType
的性能条目
。将entryType
设置为"mark
"来获得所有的标记条目(通过指定name
来检索更具体的条目)。
移除性能标记
想要从性能事件线上移除一个特定标记,调用performance.clearMarks(name)
,name
是想要移除的标记的名称。如果这个方法被调用时没有传入任何参数,那么性能时间线上所有标记类型的条目都会被移除。
性能测量
measure
事件同样由程序指定名称,但是它被放在两个标记之间因此实际上是两个标记间的中间点。
创建一个性能测量
测量
通过调用performance.measure(measureName, startMarkName, endMarkName)
来创建,measureName
指定了该测量的名称,startMarkName
和endMarkName
分别指定了性能时间线上该测量前后的两个标记的名称。
测量
性能条目
包含以下属性值:
entryType
- 设置为"measure
".name
- 设置为测量被创建时"name
"参数给定的值startTime
- 设置为measure()
被调用时的时间戳
。duration
- 设置为该测量间隔DOMHighResTimeStamp
(即结束标记时间戳减去开始标记时间戳的差值)。
检索性能测量
Performance
接口有三个方法可以检索一个测量:
performance.getEntries()
- 返回性能时间线上所有的
性能条目
。通过筛选entryType
属性为"measure
"的条目来获取所有测量
条目。 performance.getEntriesByType(entryType)
- 返回性能事件线上指定
entryType
的性能条目
,通过将entryType
设置为"measure
"来获取所有的测量条目。 performance.getEntriesByName(name, entryType)
- 返回性能时间线上具有指定
name
和entryType
的性能项目
,将entryType
设置为"measure
"来获取所有测量条目(通过指定name
参数来检索更具体的条目)。
移除性能测量
想要从性能时间线上移除一个测量,调用performance.clearMeasures(name)
,name
是要移除的测量的名称。如果该方法被调用时没有传入任何参数,那么性能时间线上所有的测量都会被移除。
互操作性
如Performance
接口的浏览器兼容性表所示,User Timing
方法被大多数桌面和移动浏览器(唯一的例外是桌面Safari和移动版Safari,Safari Technology Preview 24已经支持该方法)。
想要测试你的浏览器是否支持该API,运行perf-api-support
程序。
相关内容
- User Timing Standard; W3C Editor's Draft
- CanIUse data
- A Primer for Web Performance Timing APIs; Xiaoqian Wu; W3C Editor's Draft
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论