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 vor der Verwendung auf produktiven Webseiten.
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
.
Instanz-Eigenschaften
Diese Schnittstelle erweitert die folgenden PerformanceEntry
Eigenschaften für Langanimations-Frame-Performance-Einträge:
PerformanceEntry.duration
Schreibgeschützt 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
Schreibgeschützt Experimentell-
Gibt den Eintrags-Typ zurück, der immer
"script"
ist. PerformanceEntry.name
Schreibgeschützt Experimentell-
Gibt den Eintrags-Namen zurück, der immer
"script"
ist. PerformanceEntry.startTime
Schreibgeschützt 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
Schreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStamp
zurück, der die Zeit angibt, zu der die Skript-Kompilierung abgeschlossen und die Ausführung gestartet wurde. PerformanceScriptTiming.forcedStyleAndLayoutDuration
Schreibgeschützt 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
Schreibgeschützt Experimentell-
Gibt einen Zeichenfolgenwert zurück, der die Identität des Features angibt, das beim Aufruf das Skript ausführte.
PerformanceScriptTiming.invokerType
Schreibgeschützt Experimentell-
Gibt einen Zeichenfolgenwert zurück, der den Typ des Features angibt, das beim Aufruf das Skript ausführte.
PerformanceScriptTiming.pauseDuration
Schreibgeschützt 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 synchroneXMLHttpRequest
s). PerformanceScriptTiming.sourceCharPosition
Schreibgeschützt Experimentell-
Gibt eine Zahl zurück, die die Charakterposition des Skript-Features angibt, das zum LoAF beigetragen hat.
PerformanceScriptTiming.sourceFunctionName
Schreibgeschützt Experimentell-
Gibt eine Zeichenkette zurück, die den Namen der Funktion angibt, die zum LoAF beigetragen hat.
PerformanceScriptTiming.sourceURL
Schreibgeschützt Experimentell-
Gibt eine Zeichenkette zurück, die die URL des Skripts angibt.
PerformanceScriptTiming.window
Schreibgeschützt Experimentell-
Gibt eine Referenz auf ein
Window
Objekt zurück, das daswindow
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
Schreibgeschützt 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