PerformanceResourceTiming - 检索和分析应用程序资源加载的详细网络时序数据

PerformanceResourceTiming 接口可以检索和分析有关应用程序资源加载的详细网络时序数据。例如,应用程序可以使用时间度量来确定获取特定资源(例如 XMLHttpRequest<SVG>,图片或脚本所需的时长。

该接口的属性使用 高分辨率时间戳 为网络事件(例如,重定向开始和结束时间,获取开始,DNS 查找开始和结束时间,响应)创建_资源加载时间轴_另外,该接口使用其他属性扩展了 PerformanceEntry,该属性提供了有关所获取资源的大小以及启动该获取的资源的_ type _的数据。

该接口的属性为网络事件创建一个带有高分辨率时间戳资源加载时间轴,例如重定向开始和结束时间、获取开始时间、DNS查找开始和结束时间、响应开始和结束时间等。此外,该接口使用其他属性扩展了 PerformanceEntry,这些属性提供关于获取资源的大小以及发起获取的资源类型的数据。

注意: 此特性在 Web Worker 中可用。

属性

该接口通过如下限定和约束属性来扩展 PerformanceEntry 的属性:

PerformanceEntry.entryType 只读

返回 "resource"

PerformanceEntry.name 只读

返回资源 URL。

PerformanceEntry.startTime 只读

返回一个 timestamp,表示资源获取开始的时间。该值等效于 PerformanceEntry.fetchStart

PerformanceEntry.duration 只读

返回一个 timestamp,即 responseEndstartTime 属性的差值。

该接口还支持以下属性,这些属性按照记录单个资源获取的顺序列出。

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 的定义
候选推荐 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持43 支持40103011
connectEnd431240103211
connectStart431240103211
decodedBodySize541745 不支持41 不支持
domainLookupEnd431240 不支持3011
domainLookupStart431240 不支持3011
encodedBodySize541745 不支持41 不支持
fetchStart431240 不支持3011
initiatorType431240 不支持3011
nextHopProtocol611745 不支持 不支持 不支持
redirectEnd431240 不支持3011
redirectStart431240 不支持3011
requestStart431240 不支持3011
responseEnd431240 不支持3011
responseStart431240 不支持3011
secureConnectionStart431840 不支持3011
serverTiming65 未知61 不支持52 未知
toJSON43 支持40 不支持3011
transferSize541745 不支持41 不支持
在 Worker 中可用43 支持60 不支持32 不支持
workerStart431658 不支持3211

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持4343 未知42 未知3011
connectEnd4343 未知42 未知3211
connectStart4343 未知42 未知3211
decodedBodySize5454 未知45 未知41 不支持
domainLookupEnd4343 未知42 未知3011
domainLookupStart4343 未知42 未知3011
encodedBodySize5454 未知45 未知41 不支持
fetchStart4343 未知42 未知3011
initiatorType4343 未知42 未知3011
nextHopProtocol6161 未知45 未知 不支持 不支持
redirectEnd4343 未知42 未知3011
redirectStart4343 未知42 未知3011
requestStart4343 未知42 未知3011
responseEnd4343 未知42 未知3011
responseStart4343 未知42 未知3011
secureConnectionStart4343 未知42 未知3011
serverTiming6565 未知61 未知47 未知
toJSON4343 未知42 未知3011
transferSize5454 未知45 未知41 不支持
在 Worker 中可用4343 未知60 未知32 不支持
workerStart4343 未知58 未知3211

相关链接