PerformanceResourceTiming
=========================

PerformanceResourceTiming 接口可以检索和分析有关加载应用程序资源的详细网络计时数据。应用程序可以使用 timing 指标来确定获取特定资源所需的时间长度，例如`XMLHttpRequest`，`<SVG>`，image 或 script。这个接口使用`high-resolution timestamps` 属性创建加载资源时间轴，用于网络事件，例如重定向开始 ( redirect start ) 和结束时间，获取开始 ( fetch start )，DNS 查找开始 ( DNS lookup start ) 和结束时间，响应开始 ( response start ) 和结束时间等。此外，接口扩展`PerformanceEntry`与其他属性，这些属性提供有关获取资源大小的数据以及初始化时获取的资源类型。
PerformanceEntry

PerformanceResourceTiming

**备注：** 此特性在 Web Worker 中可用

属性
--

此接口通过限定和约束`PerformanceEntry`属性来扩展资源性能条目类型，如下所示：

`PerformanceEntry.entryType`只读 

返回 `"resource"`.

`PerformanceEntry.name`只读 

返回 resources URL.

`PerformanceEntry.startTime` (en-US)只读 

在资源提取开始的时间返回`timestamp`。该值等于`PerformanceEntry.fetchStart` (en-US)。

`PerformanceEntry.duration` (en-US)只读 

返回`timestamp`，它是`responseEnd` (en-US)和`startTime` (en-US)属性之间的差异。

该接口还支持以下属性，这些属性按记录顺序列出以获取单个资源。按字母顺序排列的列表显示在左侧的导航栏中。

`PerformanceResourceTiming.initiatorType` (en-US)只读 

返回`string`，表示初始化性能条目的资源类型，如`PerformanceResourceTiming.initiatorType` (en-US)中所规定。

`PerformanceResourceTiming.nextHopProtocol` (en-US)只读 

返回`string` ，表示用于获取资源的网络协议，由ALPN Protocol ID (RFC7301)标识。

`PerformanceResourceTiming.workerStart` (en-US)只读 

如果 Service Worker 线程已在运行，则在调用`FetchEvent`之前立即返回`DOMHighResTimeStamp`，如果尚未运行，则在启动 Service Worker 线程之前立即返回`DOMHighResTimeStamp`。如果资源未被 Service Worker 拦截，则该属性将始终返回 0。

`PerformanceResourceTiming.redirectStart` (en-US)只读 

返回`DOMHighResTimeStamp`，表示初始重定向的开始获取时间。

`PerformanceResourceTiming.redirectEnd` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在收到最后一次重定向响应的最后一个字节后。

`PerformanceResourceTiming.fetchStart` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器开始获取资源之前。

`PerformanceResourceTiming.domainLookupStart` (en-US)只读 

返回`DOMHighResTimeStamp`，紧接在浏览器启动资源的域名查找之前。

`PerformanceResourceTiming.domainLookupEnd` (en-US)只读 

返回`DOMHighResTimeStamp` ，表示浏览器完成资源的域名查找后的时间。

`PerformanceResourceTiming.connectStart` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器检索资源，开始建立与服务器的连接之前。

`PerformanceResourceTiming.connectEnd` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器完成与服务器的连接以检索资源之后。

`PerformanceResourceTiming.secureConnectionStart` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器启动握手过程之前，以保护当前连接。

`PerformanceResourceTiming.requestStart` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器开始从服务器请求资源之前。

`PerformanceResourceTiming.responseStart` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器收到服务器响应的第一个字节后。

`PerformanceResourceTiming.responseEnd` (en-US)只读 

返回`DOMHighResTimeStamp` ，紧接在浏览器收到资源的最后一个字节之后或紧接在传输连接关闭之前，以先到者为准。

`PerformanceResourceTiming.transferSize` (en-US)只读 

表示获取资源的大小（以八位字节为单位）的`数字`。包括响应头字段和响应 payload body 的大小。

`PerformanceResourceTiming.encodedBodySize` (en-US)只读 

在删除任何应用的内容编码之前，从 payload body 的提取（HTTP 或高速缓存）接收的大小（以八位字节为单位）的`数字`。

`PerformanceResourceTiming.decodedBodySize` (en-US)只读 

在删除任何应用的内容编码之后，从消息正文 ( message body ) 的提取（HTTP 或缓存）接收的大小（以八位字节为单位）的`数字`。

`PerformanceResourceTiming.serverTiming` (en-US)只读 

包含服务器时序度量 ( timing metrics ) 的`PerformanceServerTiming` (en-US) 条目数组。

方法
--

`PerformanceResourceTiming.toJSON()` (en-US)

返回`DOMString`，它是 `PerformanceResourceTiming` 对象的 JSON 表示形式。

示例
--

在 Resource Timing（概述）中查看相关示例。

规范
--

| Specification |
| --- |
| Resource Timing # resources-included-in-the-performanceresourcetiming-interface |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参考
--

* Resource Timing（概述）