PerformanceLongAnimationFrameTiming
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Das PerformanceLongAnimationFrameTiming-Interface ist in der Long Animation Frames API spezifiziert und stellt Messwerte für lange Animationsframes (LoAFs) bereit, die die Darstellung beanspruchen und die Ausführung anderer Aufgaben blockieren.
Beschreibung
Lange Animationsframes (LoAFs) sind Aktualisierungen der Darstellung, die sich um mehr als 50 ms verzögern. LoAFs können Aktualisierungen der Benutzeroberfläche (UI) verlangsamen, sodass Bedienelemente nicht mehr zu reagieren scheinen und ruckelige (nicht flüssige) Animationseffekte und Scrollbewegungen entstehen. Das führt häufig zu Frustration bei Benutzern.
Das PerformanceLongAnimationFrameTiming-Interface liefert die folgenden detaillierten Informationen zu LoAFs, mit denen Entwickler deren Ursachen eingrenzen können:
- Detaillierte Zeitstempel für jeden LoAF.
- Detaillierte Informationen zu jedem Skript, das zum Entstehen des LoAF beigetragen hat, über die Eigenschaft
PerformanceLongAnimationFrameTiming.scripts. Sie gibt ein Array vonPerformanceScriptTiming-Objekten zurück, eines für jedes Skript.
PerformanceLongAnimationFrameTiming erbt von PerformanceEntry.
Instanzeigenschaften
Dieses Interface definiert direkt die folgenden Eigenschaften:
PerformanceLongAnimationFrameTiming.blockingDurationSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der die Gesamtzeit in Millisekunden angibt, während der der Hauptthread daran gehindert war, auf Aufgaben mit hoher Priorität wie Benutzereingaben zu reagieren. Zur Berechnung werden alle langen Aufgaben innerhalb des LoAF mit einerdurationvon mehr als50msherangezogen. Von jeder dieser Aufgaben werden50msabgezogen, die Darstellungszeit wird zur Dauer der längsten Aufgabe addiert und die Ergebnisse werden summiert. PerformanceLongAnimationFrameTiming.firstUIEventTimestampSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Zeitpunkt angibt, zu dem das erste UI-Ereignis – etwa ein Maus- oder Tastaturereignis – während des aktuellen Animationsframes in die Warteschlange gestellt wurde. PerformanceLongAnimationFrameTiming.paintTime-
Gibt den
Zeitstempelzurück, zu dem die Darstellungsphase endete und der Animationsframe begann. PerformanceLongAnimationFrameTiming.presentationTime-
Gibt den
Zeitstempelzurück, zu dem die UI-Aktualisierung tatsächlich auf dem Bildschirm dargestellt wurde. PerformanceLongAnimationFrameTiming.renderStartSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Beginn des Darstellungszyklus angibt. Dieser umfasstWindow.requestAnimationFrame()-Callbacks, Stil- und Layoutberechnungen sowieResizeObserver- undIntersectionObserver-Callbacks. PerformanceLongAnimationFrameTiming.scriptsSchreibgeschützt-
Gibt ein Array von
PerformanceScriptTiming-Instanzen zurück. PerformanceLongAnimationFrameTiming.styleAndLayoutStartSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Beginn des Zeitraums angibt, in dem Stil- und Layoutberechnungen für den aktuellen Animationsframe durchgeführt werden.
Das Interface erweitert außerdem die folgenden Eigenschaften von PerformanceEntry, wobei sie wie beschrieben genauer definiert und eingeschränkt werden:
PerformanceEntry.durationSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der die Zeit in Millisekunden angibt, die für die vollständige Verarbeitung des LoAF benötigt wurde. PerformanceEntry.entryTypeSchreibgeschützt-
Gibt den Eintragstyp zurück, der immer
"long-animation-frame"ist. PerformanceEntry.nameSchreibgeschützt-
Gibt den Eintragsnamen zurück, der immer
"long-animation-frame"ist. PerformanceEntry.startTimeSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Zeitpunkt angibt, zu dem der Animationsframe begann.
Instanzmethoden
PerformanceLongAnimationFrameTiming.toJSON()-
Gibt ein als JSON serialisierbares einfaches Objekt zurück, das das
PerformanceLongAnimationFrameTiming-Objekt repräsentiert. Die Methode wird automatisch vonJSON.stringify()aufgerufen.
Beispiele
Beispiele zur Long Animation Frames API finden Sie unter Zeitmessung langer Animationsframes.
Spezifikationen
| Spezifikation |
|---|
| Long Animation Frames API> # sec-PerformanceLongAnimationFrameTiming> |