PerformanceResourceTiming: finalResponseHeadersStart 屬性
注意:此功能在 Web Workers 中可用。
只讀屬性 finalResponseHeadersStart 返回一個 timestamp,該時間戳表示瀏覽器在從伺服器接收到最終文件響應(例如,200 OK)的第一個位元組後立即觸發。
這與 requestStart(也可能表示為 firstInterimResponseStart)不同,因為 requestStart 從任何響應(包括中間響應,例如 103 Early Hints)的第一個位元組開始計時,而最終響應可能晚得多。
當沒有中間響應時,requestStart 與 finalResponseHeadersStart 相同,並且 firstInterimResponseStart 為 0。
finalResponseHeadersStart 沒有結束屬性。
值
finalResponseHeadersStart 屬性可以具有以下值
- 一個
DOMHighResTimeStamp,表示瀏覽器在從伺服器接收到最終響應的第一個位元組後立即觸發。 - 如果資源是跨域請求且未使用
Timing-Allow-OriginHTTP 響應頭,則返回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.club.tw 檢視時序資源,跨域資源應傳送
Timing-Allow-Origin: https://mdn.club.tw
規範
| 規範 |
|---|
| 資源時序 # dom-performanceresourcetiming-finalresponseheadersstart |
瀏覽器相容性
載入中…