PerformanceElementTiming

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 PerformanceElementTiming-Schnittstelle enthält Render-Timing-Informationen für Bild- und Textknoten-Elemente, die der Entwickler mit einem elementtiming-Attribut zur Beobachtung markiert hat.

Beschreibung

Das Ziel der Element Timing API ist es, Webentwicklern oder Analysetools die Möglichkeit zu geben, die Rendering-Zeitstempel kritischer Elemente auf einer Seite zu messen.

Die API unterstützt Timing-Informationen für die folgenden Elemente:

  • <img>-Elemente,
  • <image>-Elemente innerhalb eines <svg>,
  • poster-Bilder von <video>-Elementen,
  • Elemente, die eine inhaltsvolle background-image-Eigenschaft mit einem URL-Wert für eine tatsächlich verfügbare Ressource haben, und
  • Gruppen von Textknoten, wie z.B. ein <p>.

Der Autor markiert ein Element zur Beobachtung, indem er das elementtiming-Attribut auf das Element setzt.

PerformanceElementTiming erbt von PerformanceEntry.

PerformanceEntry PerformanceElementTiming

Instanz-Eigenschaften

Diese Schnittstelle erweitert die folgenden PerformanceEntry-Eigenschaften für Event-Timing-Performance-Eintragstypen, indem sie wie folgt qualifiziert werden:

PerformanceEntry.duration Schreibgeschützt Experimentell

Gibt immer 0 zurück, da duration für diese Schnittstelle nicht gilt.

PerformanceEntry.entryType Schreibgeschützt Experimentell

Gibt immer "element" zurück.

PerformanceEntry.name Schreibgeschützt Experimentell

Gibt "image-paint" für Bilder und "text-paint" für Text zurück.

PerformanceEntry.startTime Schreibgeschützt Experimentell

Gibt den Wert der renderTime dieses Eintrags zurück, wenn dieser nicht 0 ist, ansonsten den Wert der loadTime dieses Eintrags.

Diese Schnittstelle unterstützt auch die folgenden Eigenschaften:

PerformanceElementTiming.element Schreibgeschützt Experimentell

Ein Element, das das Element darstellt, für das Informationen zurückgegeben werden.

PerformanceElementTiming.id Schreibgeschützt Experimentell

Ein String, der die id des Elements ist.

PerformanceElementTiming.identifier Schreibgeschützt Experimentell

Ein String, der den Wert des elementtiming-Attributs des Elements darstellt.

PerformanceElementTiming.intersectionRect Schreibgeschützt Experimentell

Ein DOMRectReadOnly, das das Rechteck des Elements im Ansichtsfenster darstellt.

PerformanceElementTiming.loadTime Schreibgeschützt Experimentell

Ein DOMHighResTimeStamp mit der Ladezeit des Elements.

PerformanceElementTiming.naturalHeight Schreibgeschützt Experimentell

Ein vorzeichenloser 32-Bit-Ganzzahlwert (unsigned long), der die intrinsische Höhe des Bildes darstellt, wenn dies auf ein Bild angewendet wird, 0 für Text.

PerformanceElementTiming.naturalWidth Schreibgeschützt Experimentell

Ein vorzeichenloser 32-Bit-Ganzzahlwert (unsigned long), der die intrinsische Breite des Bildes darstellt, wenn dies auf ein Bild angewendet wird, 0 für Text.

PerformanceElementTiming.renderTime Schreibgeschützt Experimentell

Ein DOMHighResTimeStamp mit der Renderzeit des Elements.

PerformanceElementTiming.url Schreibgeschützt Experimentell

Ein String, der die ursprüngliche URL der Ressourcenanfrage für Bilder ist, 0 für Text.

Instanz-Methoden

PerformanceElementTiming.toJSON() Experimentell

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

Beispiele

Beobachtung der Renderzeit spezifischer Elemente

In diesem Beispiel werden zwei Elemente beobachtet, indem das elementtiming-Attribut hinzugefügt wird. Ein PerformanceObserver wird registriert, um alle Performance-Einträge des Typs "element" zu erhalten, und das buffered-Flag wird verwendet, um auf Daten zuzugreifen, die vor der Beobachtererstellung vorhanden sind.

html
<img src="image.jpg" elementtiming="big-image" />
<p elementtiming="text" id="text-id">text here</p>
js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(entry);
  });
});
observer.observe({ type: "element", buffered: true });

Zwei Einträge werden in der Konsole ausgegeben. Der erste enthält Details zum Bild, der zweite mit Details zum Textknoten.

Spezifikationen

Specification
Element Timing API
# sec-performance-element-timing

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
PerformanceElementTiming
Experimental
element
Experimental
id
Experimental
identifier
Experimental
intersectionRect
Experimental
loadTime
Experimental
naturalHeight
Experimental
naturalWidth
Experimental
renderTime
Experimental
Cross-origin
Experimental
toJSON
Experimental
url
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch