PerformanceScriptTiming

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die PerformanceScriptTiming Schnittstelle ist im Long Animation Frames API spezifiziert und bietet Metriken zu einzelnen Skripten, die zu langen Animationsframes (LoAFs) beitragen.

Beschreibung

Lange Animationsframes (LoAFs) sind die Rendering-Aktualisierungen, die um mehr als 50 ms verzögert sind. LoAFs können langsame Benutzeroberflächen- (UI) Updates verursachen, sodass Bedienelemente träge erscheinen und ruckelige (nicht flüssige) Animationen und Scroll-Effekte entstehen. Dies führt oft zu Benutzerfrustration.

Die PerformanceScriptTiming Schnittstelle (Instanzen davon werden über die PerformanceLongAnimationFrameTiming.scripts Eigenschaft abgerufen) bietet die folgende detaillierte Information über einzelne Skripte, die zu LoAFs beitragen und Entwicklern ermöglichen, deren Ursachen einzugrenzen:

  • Ein detaillierter Satz von Zeitstempeln für jedes Skript.
  • Die Identität und der Typ des Aufrufers, d. h. das Feature, das beim Aufruf das Skript ausführte.
  • Detaillierte Informationen zu jeder Skriptquelle, einschließlich der URL, des Funktionsnamens und der Zeichenposition, die zum LoAF beigetragen haben.

PerformanceScriptTiming erbt von PerformanceEntry.

PerformanceEntry PerformanceScriptTiming

Instanz-Eigenschaften

Diese Schnittstelle erweitert die folgenden PerformanceEntry Eigenschaften für Langanimations-Frame-Performance-Einträge:

PerformanceEntry.duration Nur lesbar Experimentell

Gibt einen DOMHighResTimeStamp zurück, der die verstrichene Zeit in Millisekunden zwischen dem Start und dem Ende der Skript-Ausführung darstellt.

PerformanceEntry.entryType Nur lesbar Experimentell

Gibt den Eintrags-Typ zurück, der immer "script" ist.

PerformanceEntry.name Nur lesbar Experimentell

Gibt den Eintrags-Namen zurück, der immer "script" ist.

PerformanceEntry.startTime Nur lesbar Experimentell

Gibt einen DOMHighResTimeStamp zurück, der die Zeit in Millisekunden angibt, zu der die Skript-Ausführung gestartet wurde.

Diese Schnittstelle unterstützt auch die folgenden Eigenschaften:

PerformanceScriptTiming.executionStart Nur lesbar Experimentell

Gibt einen DOMHighResTimeStamp zurück, der die Zeit angibt, zu der die Skript-Kompilierung abgeschlossen und die Ausführung gestartet wurde.

PerformanceScriptTiming.forcedStyleAndLayoutDuration Nur lesbar Experimentell

Gibt einen DOMHighResTimeStamp zurück, der die Gesamtzeit in Millisekunden angibt, die das Skript mit erzwungenen Layout-/Stilprozessen verbracht hat. Siehe Vermeiden von Layout-Trashing, um zu verstehen, was dies verursacht.

PerformanceScriptTiming.invoker Nur lesbar Experimentell

Gibt einen Zeichenfolgenwert zurück, der die Identität des Features angibt, das beim Aufruf das Skript ausführte.

PerformanceScriptTiming.invokerType Nur lesbar Experimentell

Gibt einen Zeichenfolgenwert zurück, der den Typ des Features angibt, das beim Aufruf das Skript ausführte.

PerformanceScriptTiming.pauseDuration Nur lesbar Experimentell

Gibt einen DOMHighResTimeStamp zurück, der die Gesamtzeit in Millisekunden angibt, die das Skript mit dem "Pausieren" synchroner Operationen verbracht hat (zum Beispiel, Window.alert() Aufrufe oder synchrone XMLHttpRequests).

PerformanceScriptTiming.sourceCharPosition Nur lesbar Experimentell

Gibt eine Zahl zurück, die die Charakterposition des Skript-Features angibt, das zum LoAF beigetragen hat.

PerformanceScriptTiming.sourceFunctionName Nur lesbar Experimentell

Gibt eine Zeichenkette zurück, die den Namen der Funktion angibt, die zum LoAF beigetragen hat.

PerformanceScriptTiming.sourceURL Nur lesbar Experimentell

Gibt eine Zeichenkette zurück, die die URL des Skripts angibt.

PerformanceScriptTiming.window Nur lesbar Experimentell

Gibt eine Referenz auf ein Window Objekt zurück, das das window des Containers (d. h. entweder das Dokument der obersten Ebene oder ein <iframe>) darstellt, in dem das LoAF-verursachende Skript ausgeführt wurde.

PerformanceScriptTiming.windowAttribution Nur lesbar Experimentell

Gibt einen enumerierten Wert zurück, der die Beziehung des Containers (d. h. entweder das Dokument der obersten Ebene oder ein <iframe>) beschreibt, in dem das LoAF-verursachende Skript ausgeführt wurde, relativ zu dem Fenster, das das aktuelle Dokument ausführt.

Instanz-Methoden

PerformanceScriptTiming.toJSON() Experimentell

Gibt eine JSON-Darstellung des PerformanceScriptTiming Objekts zurück.

Beispiele

Siehe Langanimations-Frame-Timing für zugehörige Beispiele zum Long Animation Frames API.

Spezifikationen

Specification
Long Animation Frames API
# sec-PerformanceScriptTiming

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch