Performance: Methode toJSON()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2021 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Methode toJSON() der Schnittstelle Performance gibt ein JSON-serialisierbares einfaches Objekt zurück, das das Performance-Objekt repräsentiert.
Die Methode wird von JSON.stringify() automatisch aufgerufen, wenn bei der JSON-Serialisierung ein Performance-Objekt auftritt.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:
Der Wert jeder Eigenschaft wird unverändert kopiert. Wenn das zurückgegebene Objekt an JSON.stringify() übergeben wird, werden die Eigenschaften timing und navigation zusätzlich mit PerformanceTiming.toJSON() beziehungsweise PerformanceNavigation.toJSON() serialisiert.
Das zurückgegebene Objekt enthält die Eigenschaft eventCounts nicht, da EventCounts keine toJSON()-Operation bereitstellt.
Hinweis:
In einem Fensterkontext enthält das zurückgegebene Objekt interactionCount sowie die veralteten Eigenschaften performance.timing und performance.navigation. Diese Eigenschaften sind in Workern nicht verfügbar. Um ein JSON-serialisierbares einfaches Objekt zu erhalten, das einen PerformanceNavigationTiming-Eintrag repräsentiert, rufen Sie stattdessen PerformanceNavigationTiming.toJSON() auf.
Beispiele
toJSON() direkt aufrufen
Wenn toJSON() direkt auf performance aufgerufen wird, gibt die Methode ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.
const json = performance.toJSON();
console.log(json); // A plain object
console.log(typeof json); // "object"
console.log(json.timeOrigin); // Same value as performance.timeOrigin
Als JSON-String serialisieren
In diesem Beispiel wird das Performance-Objekt mit JSON.stringify() serialisiert. Dabei wird die Methode toJSON() automatisch aufgerufen.
console.log(JSON.stringify(performance));
Dadurch würde ein JSON-String wie der folgende protokolliert (zur besseren Lesbarkeit formatiert):
{
"timeOrigin": 1668077531367.4,
"timing": {
"connectStart": 1668077531372,
"navigationStart": 1668077531367,
"secureConnectionStart": 0,
"fetchStart": 1668077531372,
"domContentLoadedEventStart": 1668077531580,
"responseStart": 1668077531372,
"domInteractive": 1668077531524,
"domainLookupEnd": 1668077531372,
"responseEnd": 1668077531500,
"redirectStart": 0,
"requestStart": 1668077531372,
"unloadEventEnd": 0,
"unloadEventStart": 0,
"domLoading": 1668077531512,
"domComplete": 1668077531585,
"domainLookupStart": 1668077531372,
"loadEventStart": 1668077531585,
"domContentLoadedEventEnd": 1668077531580,
"loadEventEnd": 1668077531585,
"redirectEnd": 0,
"connectEnd": 1668077531372
},
"navigation": {
"type": 0,
"redirectCount": 0
},
"interactionCount": 0
}
Spezifikationen
| Spezifikation |
|---|
| High Resolution Time # dom-performance-tojson |