PerformanceResourceTiming: Methode toJSON()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Methode toJSON() der Schnittstelle PerformanceResourceTiming gibt ein JSON-serialisierbares einfaches Objekt zurück, das das PerformanceResourceTiming-Objekt repräsentiert.
Die Methode wird von JSON.stringify() automatisch aufgerufen, wenn bei der JSON-Serialisierung ein PerformanceResourceTiming-Objekt verarbeitet wird.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:
nameentryTypestartTimedurationnavigationIdinitiatorTypedeliveryTypenextHopProtocolrenderBlockingStatuscontentTypecontentEncodingworkerStartredirectStartredirectEndfetchStartdomainLookupStartdomainLookupEndconnectStartsecureConnectionStartconnectEndrequestStartresponseStartfirstInterimResponseStartfinalResponseHeadersStartresponseEndworkerRouterEvaluationStartworkerCacheLookupStartworkerMatchedRouterSourceworkerFinalRouterSourcetransferSizeencodedBodySizedecodedBodySizeresponseStatusserverTiming
Der Wert jeder Eigenschaft wird unverändert übernommen. Wenn das zurückgegebene Objekt an JSON.stringify() übergeben wird, werden die Objekte im serverTiming-Array zusätzlich mit PerformanceServerTiming.toJSON() serialisiert.
Beispiele
toJSON() direkt aufrufen
Dieses Beispiel ruft ein PerformanceResourceTiming-Objekt ab. Ein direkter Aufruf von toJSON() gibt ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const json = entry.toJSON();
console.log(json); // A plain object
console.log(typeof json); // "object"
console.log(json.initiatorType); // Same value as entry.initiatorType
});
});
observer.observe({ type: "resource", buffered: true });
In eine JSON-Zeichenfolge serialisieren
Innerhalb der Callback-Funktion aus dem vorherigen Beispiel kann dasselbe Objekt mit JSON.stringify() serialisiert werden. Dabei wird die Methode toJSON() automatisch aufgerufen.
console.log(JSON.stringify(entry));
Dadurch würde eine JSON-Zeichenfolge wie die folgende protokolliert (zur besseren Lesbarkeit formatiert):
{
"name": "https://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/31px-Commons-logo.svg.png",
"entryType": "resource",
"startTime": 111.25,
"duration": 11.5,
"navigationId": 2463,
"initiatorType": "img",
"deliveryType": "cache",
"nextHopProtocol": "h2",
"renderBlockingStatus": "non-blocking",
"contentType": "image/png",
"contentEncoding": "",
"workerStart": 0,
"redirectStart": 0,
"redirectEnd": 0,
"fetchStart": 111.25,
"domainLookupStart": 111.25,
"domainLookupEnd": 111.25,
"connectStart": 111.25,
"secureConnectionStart": 111.25,
"connectEnd": 111.25,
"requestStart": 117.25,
"responseStart": 120.25,
"firstInterimResponseStart": 0,
"finalResponseHeadersStart": 120.25,
"responseEnd": 122.75,
"transferSize": 0,
"encodedBodySize": 880,
"decodedBodySize": 880,
"responseStatus": 200,
"serverTiming": [
{
"name": "cache",
"duration": 0.25,
"description": "hit-front"
},
{
"name": "host",
"duration": 0.5,
"description": "cp3061"
}
]
}
Spezifikationen
| Spezifikation |
|---|
| Resource Timing # dom-performanceresourcetiming-tojson |