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 im Long Animation Frames API spezifiziert und bietet Metriken zu langen Animationsframes (LoAFs), die das Rendering belegen und andere Aufgaben blockieren.
Beschreibung
Lange Animationsframes (LoAFs) sind Rendering-Updates, die über 50 ms hinaus verzögert sind. LoAFs können zu langsamen Benutzeroberflächen-Updates führen, wodurch Bedienelemente unempfindlich erscheinen und ruckelnde (nicht flüssige) Animationseffekte und Scrollen verursachen. Dies führt häufig zu Frustration bei den Benutzern.
Das PerformanceLongAnimationFrameTiming Interface bietet die folgende detaillierte Informationsmenge zu LoAFs, die Entwicklern ermöglicht, die Hauptursachen genauer zu identifizieren:
- Ein detailliertes Satz von Zeitstempeln für jedes LoAF.
- Detaillierte Informationen zu jedem Skript, das zur Erstellung des LoAF beigetragen hat, über die
PerformanceLongAnimationFrameTiming.scriptsEigenschaft. Diese gibt ein Array vonPerformanceScriptTimingObjekten zurück, eines für jedes Skript.
PerformanceLongAnimationFrameTiming erbt von PerformanceEntry.
Instanz-Eigenschaften
Dieses Interface definiert direkt die folgenden Eigenschaften:
PerformanceLongAnimationFrameTiming.blockingDurationSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der die gesamte Zeit in Millisekunden angibt, während der der Hauptthread daran gehindert wurde, auf hochpriorisierte Aufgaben wie Benutzereingaben zu reagieren. Dies wird berechnet, indem alle long tasks innerhalb des LoAFs genommen werden, die einedurationvon über50mshaben,50msvon jedem abgezogen wird, die Rendering-Zeit zur längsten Aufgabedauer hinzugefügt wird und die Ergebnisse summiert werden. PerformanceLongAnimationFrameTiming.firstUIEventTimestampSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der die Zeit des ersten UI-Ereignisses — wie ein Maus- oder Tastaturereignis — angibt, das während des aktuellen Animationsframes in die Warteschlange gestellt wurde. PerformanceLongAnimationFrameTiming.paintTime-
Gibt den
timestampzurück, wenn die Rendering-Phase endete und der Animationsframe begann. PerformanceLongAnimationFrameTiming.presentationTime-
Gibt den
timestampzurück, wenn das UI-Update tatsächlich auf dem Bildschirm gezeichnet wurde. PerformanceLongAnimationFrameTiming.renderStartSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Startzeitpunkt des Rendering-Zyklus angibt, derWindow.requestAnimationFrame()Rückrufe, Stil- und Layout-Berechnungen,ResizeObserverRückrufe undIntersectionObserverRückrufe umfasst. PerformanceLongAnimationFrameTiming.scriptsSchreibgeschützt-
Gibt ein Array von
PerformanceScriptTimingInstanzen zurück. PerformanceLongAnimationFrameTiming.styleAndLayoutStartSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der den Beginn der Zeitspanne angibt, die für Stil- und Layout-Berechnungen des aktuellen Animationsframes aufgewendet wurde.
Es erweitert auch die folgenden PerformanceEntry Eigenschaften, die qualifiziert und wie beschrieben eingeschränkt werden:
PerformanceEntry.durationSchreibgeschützt-
Gibt einen
DOMHighResTimeStampzurück, der die Zeit in Millisekunden angibt, die zur vollständigen Verarbeitung des LoAF aufgewendet 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 die Zeit angibt, wann der Animationsframe startete.
Instanz-Methoden
PerformanceLongAnimationFrameTiming.toJSON()-
Überschreibt die
PerformanceEntry.toJSON()Methode, um eine JSON-Darstellung desPerformanceLongAnimationFrameTimingObjekts zurückzugeben.
Beispiele
Siehe Timing langer Animationsframes für Beispiele im Zusammenhang mit der Long Animation Frames API.
Spezifikationen
| Spezifikation |
|---|
| Long Animation Frames API> # sec-PerformanceLongAnimationFrameTiming> |