PerformanceResourceTiming.responseStart
responseStart は読み取り専用プロパティで、ブラウザーがサーバ、キャッシュ、またはローカルリソースからレスポンスの最初のバイトを受信した直後の timestamp を返します。
値
responseStart プロパティは以下の値を取ります。
- サーバーからのレスポンスの最初のバイトをブラウザーが受信した直後の
DOMHighResTimeStamp。 - リソースがキャッシュから即座に取得された場合は
0です。 - リソースがオリジン間リクエストで取得され、HTTP の
Timing-Allow-Originレスポンスヘッダーが使用されなかった場合は0となります。
例
リクエスト時間の計測
responseStart と requestStart プロパティを使用して、リクエストにかかる時間を測定することができます。
js
const request = entry.responseStart - entry.requestStart;
ブラウザーのパフォーマンスタイムラインに記録される新しい resource パフォーマンス項目を通知する PerformanceObserver を使用した例です。オブザーバーが作成される前の項目にアクセスするために buffered オプションを使用します。
js
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const request = entry.responseStart - entry.requestStart;
if (request > 0) {
console.log(`${entry.name}: Request time: ${request}ms`);
}
});
});
observer.observe({ type: "resource", buffered: true });
Performance.getEntriesByType() を使用した例です。このメソッドを呼び出した時点でブラウザー上のパフォーマンスタイムラインに存在する resource パフォーマンス項目のみを表示します。
js
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const request = entry.responseStart - entry.requestStart;
if (request > 0) {
console.log(`${entry.name}: Request time: ${request}ms`);
}
});
オリジン間のタイミング情報
responseStart プロパティの値が 0 である場合、そのリソースはオリジン間リクエストである可能性があります。オリジン間のタイミング情報を見るためには、Timing-Allow-Origin HTTP レスポンスヘッダーを設定する必要があります。
例えば、https://developer.mozilla.org にタイミングリソースを見ることを許可するには、オリジン間リソースが送信する必要があります。
http
Timing-Allow-Origin: https://developer.mozilla.org
仕様書
| Specification |
|---|
| Resource Timing # dom-performanceresourcetiming-responsestart |
ブラウザーの互換性
BCD tables only load in the browser