PerformanceResourceTiming: finalResponseHeadersStart 属性
注意:此功能在 Web Workers 中可用。
只读属性 finalResponseHeadersStart
返回一个 timestamp
,该时间戳表示浏览器在从服务器接收到最终文档响应(例如,200 OK)的第一个字节后立即触发。
这与 requestStart
(也可能表示为 firstInterimResponseStart
)不同,因为 requestStart
从任何响应(包括中间响应,例如 103 Early Hints)的第一个字节开始计时,而最终响应可能晚得多。
当没有中间响应时,requestStart
与 finalResponseHeadersStart
相同,并且 firstInterimResponseStart
为 0。
finalResponseHeadersStart
没有结束属性。
值
finalResponseHeadersStart
属性可以具有以下值
- 一个
DOMHighResTimeStamp
,表示浏览器在从服务器接收到最终响应的第一个字节后立即触发。 - 如果资源是跨域请求且未使用
Timing-Allow-Origin
HTTP 响应头,则返回0
。
示例
测量请求时间
finalResponseHeadersStart
和 requestStart
属性可用于测量浏览器在发送请求后开始接收最终响应所需的时间。
const request = entry.finalResponseHeadersStart - entry.requestStart;
以下示例使用 PerformanceObserver
来通知新记录在浏览器性能时间线中的 resource
性能条目。buffered
选项用于访问观察者创建之前的条目。
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const request = entry.finalResponseHeadersStart - entry.requestStart;
if (request > 0) {
console.log(`${entry.name}: final response time: ${request}ms`);
}
});
});
observer.observe({ type: "resource", buffered: true });
以下示例使用 Performance.getEntriesByType()
,它仅显示在调用方法时存在于浏览器性能时间线中的 resource
性能条目。
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const request = entry.finalResponseHeadersStart - entry.requestStart;
if (request > 0) {
console.log(`${entry.name}: final response time: ${request}ms`);
}
});
以下示例显示了如何测量第一个响应头和最终响应头之间的时间。
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const diff = entry.finalResponseHeadersStart - entry.responseStart;
if ((entry.finalResponseHeadersStart > 0) & (diff > 0)) {
console.log(
`${entry.name}: time between first and final response start: ${diff}ms`,
);
}
});
});
observer.observe({ type: "resource", buffered: true });
跨域计时信息
如果 finalResponseHeadersStart
属性的值为 0
,则该资源可能是跨域请求。要允许查看跨域时序信息,需要设置 Timing-Allow-Origin
HTTP 响应头。
例如,要允许 https://mdn.org.cn
查看时序资源,跨域资源应发送
Timing-Allow-Origin: https://mdn.org.cn
规范
规范 |
---|
资源时序 # dom-performanceresourcetiming-finalresponseheadersstart |
浏览器兼容性
加载中…