PerformanceServerTiming: Methode toJSON()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Methode toJSON() der Schnittstelle PerformanceServerTiming gibt ein JSON-serialisierbares einfaches Objekt zurück, das das PerformanceServerTiming-Objekt repräsentiert.
Die Methode wird automatisch von JSON.stringify() aufgerufen, wenn bei der JSON-Serialisierung ein PerformanceServerTiming-Objekt angetroffen wird.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:
Der Wert jeder Eigenschaft wird unverändert kopiert.
Beispiele
Direkter Aufruf von toJSON()
Dieses Beispiel ruft ein PerformanceServerTiming-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.
Für Server-Timing-Metriken muss der Server den Header Server-Timing senden. Zum Beispiel:
Server-Timing: cache;desc="Cache Read";dur=23.2
serverTiming-Einträge können in navigation- und resource-Einträgen enthalten sein.
Das folgende Beispiel verwendet einen PerformanceObserver, der über neue navigation- und resource-Performance-Einträge benachrichtigt, sobald diese in der Performance-Zeitleiste des Browsers erfasst werden. Verwenden Sie die Option buffered, um auf Einträge zuzugreifen, die vor der Erstellung des Observers erfasst wurden.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
entry.serverTiming.forEach((serverTiming) => {
const json = serverTiming.toJSON();
console.log(json); // A plain object
console.log(typeof json); // "object"
console.log(json.name); // Same value as serverTiming.name
});
});
});
["navigation", "resource"].forEach((type) =>
observer.observe({ type, buffered: true }),
);
Serialisierung als JSON-String
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(serverTiming));
Dadurch würde ein JSON-String wie der folgende ausgegeben (zur besseren Lesbarkeit formatiert):
{
"name": "cache",
"duration": 23.2,
"description": "Cache Read"
}
Spezifikationen
| Spezifikation |
|---|
| Server Timing # dom-performanceservertiming-tojson |