PerformanceLongAnimationFrameTiming
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die PerformanceLongAnimationFrameTiming-Schnittstelle ist im Long Animation Frames API spezifiziert und bietet Metriken zu langen Animationsframes (LoAFs), die das Rendering blockieren und andere Aufgaben daran hindern, ausgeführt zu werden.
Beschreibung
Lange Animationsframes (LoAFs) sind Rendering-Aktualisierungen, die über 50 ms hinaus verzögert werden. LoAFs können langsame Benutzeroberflächen (UI) Updates verursachen, wodurch Steuerelemente unempfänglich erscheinen und ruckelige (nicht flüssige) Animationseffekte und Bildläufe entstehen. Dies führt oft zu Benutzungsfrust.
Die PerformanceLongAnimationFrameTiming-Schnittstelle bietet den folgenden detaillierten Satz von Informationen zu LoAFs, sodass Entwickler deren Ursachen eingrenzen können:
- Einen detaillierten Satz von Zeitstempeln für jedes LoAF.
- Detaillierte Informationen zu jedem Script, das zur Entstehung des LoAF beigetragen hat, über die
PerformanceLongAnimationFrameTiming.scripts-Eigenschaft. Dies gibt ein Array vonPerformanceScriptTiming-Objekten zurück, jeweils eines für jedes Skript.
PerformanceLongAnimationFrameTiming erbt von PerformanceEntry.
Instanz-Eigenschaften
Diese Schnittstelle definiert direkt die folgenden Eigenschaften:
PerformanceLongAnimationFrameTiming.blockingDurationSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der die Gesamtzeit in Millisekunden angibt, die der Hauptthread daran gehindert wurde, auf hochpriorisierte Aufgaben wie Benutzereingaben zu reagieren. Dies wird berechnet, indem alle Lange Aufgaben innerhalb des LoAF, die einedurationvon mehr als50mshaben, genommen werden,50msvon jedem abgezogen wird, die Rendering-Zeit zur längsten Aufgabenzeit hinzugefügt wird und die Ergebnisse summiert werden. PerformanceLongAnimationFrameTiming.firstUIEventTimestampSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der den Zeitpunkt des ersten UI-Ereignisses — wie ein Maus- oder Tastaturereignis — angibt, das während des aktuellen Animationsframes in die Warteschlange gestellt wurde. PerformanceLongAnimationFrameTiming.paintTimeExperimentell-
Gibt den
zeitstempelzurück, als die Rendering-Phase endete und der Animationsframe startete. PerformanceLongAnimationFrameTiming.presentationTimeExperimentell-
Gibt den
zeitstempelzurück, als das UI-Update tatsächlich auf dem Bildschirm gezeichnet wurde. PerformanceLongAnimationFrameTiming.renderStartSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der den Startzeitpunkt des Rendering-Zyklus angibt, welcherWindow.requestAnimationFrame()-Rückrufe, Stil- und Layout-Berechnungen,ResizeObserver-Rückrufe undIntersectionObserver-Rückrufe einschließt. PerformanceLongAnimationFrameTiming.scriptsSchreibgeschützt Experimentell-
Gibt ein Array von
PerformanceScriptTiming-Instanzen zurück. PerformanceLongAnimationFrameTiming.styleAndLayoutStartSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der den Anfangszeitpunkt des Zeitraums angibt, der für Stil- und Layout-Berechnungen für den aktuellen Animationsframe aufgewendet wurde.
Es erweitert auch die folgenden PerformanceEntry-Eigenschaften und qualifiziert und beschränkt sie wie beschrieben:
PerformanceEntry.durationSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der die Zeit in Millisekunden darstellt, die benötigt wird, um den LoAF vollständig zu verarbeiten. PerformanceEntry.entryTypeSchreibgeschützt Experimentell-
Gibt den Eintragstyp zurück, welcher immer
"long-animation-frame"ist. PerformanceEntry.nameSchreibgeschützt Experimentell-
Gibt den Eintragsnamen zurück, welcher immer
"long-animation-frame"ist. PerformanceEntry.startTimeSchreibgeschützt Experimentell-
Gibt einen
DOMHighResTimeStampzurück, der den Zeitpunkt darstellt, zu dem der Animationsframe gestartet wurde.
Instanz-Methoden
PerformanceLongAnimationFrameTiming.toJSON()Experimentell-
Gibt eine JSON-Darstellung des
PerformanceLongAnimationFrameTiming-Objekts zurück.
Beispiele
Siehe Long animation frame timing für Beispiele im Zusammenhang mit der Long Animation Frames API.
Spezifikationen
| Spezifikation |
|---|
| Long Animation Frames API> # sec-PerformanceLongAnimationFrameTiming> |