PerformanceResourceTiming - 检索和分析应用程序资源加载的详细网络时序数据
PerformanceResourceTiming
接口可以检索和分析有关应用程序资源加载的详细网络时序数据。例如,应用程序可以使用时间度量来确定获取特定资源(例如 XMLHttpRequest
,<SVG>
,图片或脚本所需的时长。
该接口的属性使用 高分辨率时间戳
为网络事件(例如,重定向开始和结束时间,获取开始,DNS 查找开始和结束时间,响应)创建_资源加载时间轴_另外,该接口使用其他属性扩展了 PerformanceEntry
,该属性提供了有关所获取资源的大小以及启动该获取的资源的_ type _的数据。
该接口的属性为网络事件创建一个带有高分辨率时间戳
的资源加载时间轴,例如重定向开始和结束时间、获取开始时间、DNS查找开始和结束时间、响应开始和结束时间等。此外,该接口使用其他属性扩展了 PerformanceEntry
,这些属性提供关于获取资源的大小以及发起获取的资源类型的数据。
属性
该接口通过如下限定和约束属性来扩展 PerformanceEntry
的属性:
PerformanceEntry.entryType
只读
返回 "resource"
。
PerformanceEntry.name
只读
返回资源 URL。
PerformanceEntry.startTime
只读
返回一个 timestamp
,表示资源获取开始的时间。该值等效于 PerformanceEntry.fetchStart
。
PerformanceEntry.duration
只读
返回一个 timestamp
,即 responseEnd
和 startTime
属性的差值。
该接口还支持以下属性,这些属性按照记录单个资源获取的顺序列出。
女
PerformanceResourceTiming.initiatorType
只读
一个 string
,代表启动性能条目的资源的类型,如 PerformanceResourceTiming.initiatorType
中所指定。
PerformanceResourceTiming.nextHopProtocol
只读
一个 string
,代表用于获取资源的网络协议,由 ALPN 协议 ID(RFC7301) 定义。
PerformanceResourceTiming.workerStart
只读
一个 DOMHighResTimeStamp
, 如果服务 Worker 线程已经在运行,则返回在分派 FetchEvent
之前的时间戳,如果尚未运行,则返回在启动 Service Worker 线程之前的时间戳。如果服务 Worker 未拦截该资源,则该属性将始终返回 0。
PerformanceResourceTiming.redirectStat
只读
一个 DOMHighResTimeStamp
代表启动重定向的请求开始之前的时间。
PerformanceResourceTiming.redirectEnd
只读
一个 DOMHighResTimeStamp
,表示收到上一次重定向响应的发送最后一个字节时的时间。
PerformanceResourceTiming.fetchStart
只读
一个 DOMHighResTimeStamp
,表示浏览器即将开始获取资源之前的时间。
PerformanceResourceTiming.domainLookupStart
只读
一个 DOMHighResTimeStamp
,表示在浏览器立即开始资源的域名查找之前的时间。
PerformanceResourceTiming.domainLookupEnd
只读
一个 DOMHighResTimeStamp
,表示浏览器完成资源的域名查找之后的时间。
PerformanceResourceTiming.connectStart
只读
一个 DOMHighResTimeStamp
,表示浏览器开始建立与服务器的连接以检索资源之前的时间。
PerformanceResourceTiming.connectEnd
只读
一个 DOMHighResTimeStamp
,表示浏览器完成建立与服务器的连接以检索资源之后的时间。
PerformanceResourceTiming.secureConnectionStart
只读
一个 DOMHighResTimeStamp
,表示浏览器即将开始握手过程以保护当前连接之前的时间。
PerformanceResourceTiming.requestStart
只读
一个 DOMHighResTimeStamp
,表示浏览器开始向服务器请求资源之前的时间。
PerformanceResourceTiming.responseStart
只读
一个 DOMHighResTimeStamp
,表示浏览器从服务器接收到响应的第一个字节后的时间。
PerformanceResourceTiming.responseEnd
只读
一个 DOMHighResTimeStamp
,表示在浏览器接收到资源的最后一个字节之后或在传输连接关闭之前(以先到者为准)的时间。
PerformanceResourceTiming.transferSize
只读
一个 number
代表所获取资源的大小(以八位字节为单位)。该大小包括响应标头字段以及响应有效内容主体。
PerformanceResourceTiming.encodedBodySize
只读
一个 number
,表示在删除任何应用的内容编码之前,从有效内容主体的请求(HTTP 或缓存)中接收到的大小(以八位字节为单位)。
PerformanceResourceTiming.decodedBodySize
只读
一个 number
,表示在删除任何应用的内容编码之后,从消息主体的请求(HTTP 或缓存)中接收到的大小(以八位字节为单位)。
PerformanceResourceTiming.serverTiming
只读
一个 PerformanceServerTiming
数组,包含服务器计时指标的 PerformanceServerTiming
条目。
方法
PerformanceResourceTiming.toJSON()
返回 DOMString
对象,它是 PerformanceResourceTiming
对象的 JSON 表示形式。
实例
请参阅使用资源定时 API中的实例。
规范
规范 | 状态 | 备注 |
---|---|---|
Resource Timing Level 1 PerformanceResourceTiming 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 43 | 支持 | 40 | 10 | 30 | 11 |
connectEnd | 43 | 12 | 40 | 10 | 32 | 11 |
connectStart | 43 | 12 | 40 | 10 | 32 | 11 |
decodedBodySize | 54 | 17 | 45 | 不支持 | 41 | 不支持 |
domainLookupEnd | 43 | 12 | 40 | 不支持 | 30 | 11 |
domainLookupStart | 43 | 12 | 40 | 不支持 | 30 | 11 |
encodedBodySize | 54 | 17 | 45 | 不支持 | 41 | 不支持 |
fetchStart | 43 | 12 | 40 | 不支持 | 30 | 11 |
initiatorType | 43 | 12 | 40 | 不支持 | 30 | 11 |
nextHopProtocol | 61 | 17 | 45 | 不支持 | 不支持 | 不支持 |
redirectEnd | 43 | 12 | 40 | 不支持 | 30 | 11 |
redirectStart | 43 | 12 | 40 | 不支持 | 30 | 11 |
requestStart | 43 | 12 | 40 | 不支持 | 30 | 11 |
responseEnd | 43 | 12 | 40 | 不支持 | 30 | 11 |
responseStart | 43 | 12 | 40 | 不支持 | 30 | 11 |
secureConnectionStart | 43 | 18 | 40 | 不支持 | 30 | 11 |
serverTiming | 65 | 未知 | 61 | 不支持 | 52 | 未知 |
toJSON | 43 | 支持 | 40 | 不支持 | 30 | 11 |
transferSize | 54 | 17 | 45 | 不支持 | 41 | 不支持 |
在 Worker 中可用 | 43 | 支持 | 60 | 不支持 | 32 | 不支持 |
workerStart | 43 | 16 | 58 | 不支持 | 32 | 11 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
connectEnd | 43 | 43 | 未知 | 42 | 未知 | 32 | 11 |
connectStart | 43 | 43 | 未知 | 42 | 未知 | 32 | 11 |
decodedBodySize | 54 | 54 | 未知 | 45 | 未知 | 41 | 不支持 |
domainLookupEnd | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
domainLookupStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
encodedBodySize | 54 | 54 | 未知 | 45 | 未知 | 41 | 不支持 |
fetchStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
initiatorType | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
nextHopProtocol | 61 | 61 | 未知 | 45 | 未知 | 不支持 | 不支持 |
redirectEnd | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
redirectStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
requestStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
responseEnd | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
responseStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
secureConnectionStart | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
serverTiming | 65 | 65 | 未知 | 61 | 未知 | 47 | 未知 |
toJSON | 43 | 43 | 未知 | 42 | 未知 | 30 | 11 |
transferSize | 54 | 54 | 未知 | 45 | 未知 | 41 | 不支持 |
在 Worker 中可用 | 43 | 43 | 未知 | 60 | 未知 | 32 | 不支持 |
workerStart | 43 | 43 | 未知 | 58 | 未知 | 32 | 11 |