1. このページの目的
Resource Timing Level 2 を使って、リソースの読み込みに掛かった時間を計測する。
2. 本ページでやっていること
(1) 計測対象は画像とする
(2) 本ページで実行しているソースコード(抜粋)
function resourceTiming() {
let resourceList = window.performance.getEntriesByType("resource"),
p;
for (i = 0; i < resourceList.length; i++) {
p = resourceList[i];
console.log("= Resource entry[" + i + "]");
if (p.initiatorType == "img") {
// いろいろな掛かった時間
console.log("initiatorType: " + p.initiatorType);
console.log("name: " + p.name);
console.log("Domain Lookup に掛かった時間 = " + (p.domainLookupEnd - p.domainLookupStart));
console.log("Connect に掛かった時間 = " + (p.connectEnd - p.connectStart));
console.log("Response を受け取るのに掛かった時間 = " + (p.responseEnd - p.responseStart));
// 以下は = duration でもある。
console.log("Total で掛かった時間 = " + (p.responseEnd - p.startTime));
console.table(p.toJSON());
}
console.log(p);
}
}
<body onload="resourceTiming()">
3. 結果
- DevTools の Console パネルに出力される。
4. 参考情報
PerformanceResourceTiming Interface
[Exposed=(Window,Worker)]
interface PerformanceResourceTiming : PerformanceEntry {
readonly attribute DOMString initiatorType;
readonly attribute DOMString nextHopProtocol;
readonly attribute DOMHighResTimeStamp workerStart;
readonly attribute DOMHighResTimeStamp redirectStart;
readonly attribute DOMHighResTimeStamp redirectEnd;
readonly attribute DOMHighResTimeStamp fetchStart;
readonly attribute DOMHighResTimeStamp domainLookupStart;
readonly attribute DOMHighResTimeStamp domainLookupEnd;
readonly attribute DOMHighResTimeStamp connectStart;
readonly attribute DOMHighResTimeStamp connectEnd;
readonly attribute DOMHighResTimeStamp secureConnectionStart;
readonly attribute DOMHighResTimeStamp requestStart;
readonly attribute DOMHighResTimeStamp responseStart;
readonly attribute DOMHighResTimeStamp responseEnd;
readonly attribute unsigned long long transferSize;
readonly attribute unsigned long long encodedBodySize;
readonly attribute unsigned long long decodedBodySize;
[Default] object toJSON();
};
DOMHighResTimeStamp
型のプロパティは、基本的に発生する順番で並んでいるようだ。
5. メモ
- 特になし
6. 参考
- Resource Timing Level 2 (W3C Working Draft 18 August 2020)
- Resource Timing Level 2 (W3C Editor's Draft 15 September 2020)
- Resource Timing API - Web APIs | MDN