Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

PerformanceElementTiming: Eigenschaft renderTime

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.

Die renderTime schreibgeschützte Eigenschaft des PerformanceElementTiming-Interfaces gibt die Renderzeit des zugehörigen Elements zurück.

Wert

Ein DOMHighResTimeStamp mit der Renderzeit des Elements.

Für Bilder ist dies der Bild-Renderzeitstempel. Dieser wird als der nächste Zeichenvorgang definiert, der nach dem vollständigen Laden des Bildes auftritt. Wenn die Timing-Erlaubnisprüfung fehlschlägt (wie durch den Timing-Allow-Origin-Header definiert), wird 0 zurückgegeben.

Für Textknoten ist dies der Text-Renderzeitstempel. Dieser wird definiert als der Zeitpunkt, an dem das Element als Text gerendert wird.

Beispiele

Protokollierung von renderTime

In diesem Beispiel wird ein <img>-Element beobachtet, indem das Attribut elementtiming hinzugefügt wird. Ein PerformanceObserver wird registriert, um alle Leistungsdaten von Typ "element" zu erhalten, und das buffered-Flag wird verwendet, um auf Daten zuzugreifen, die vor der Erstellung des Beobachters existieren. Durch Aufrufen von entry.renderTime wird die Renderzeit des Bildelements zurückgegeben.

html
<img
  src="image.jpg"
  alt="a nice image"
  elementtiming="big-image"
  id="myImage" />
js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    if (entry.identifier === "big-image") {
      console.log(entry.renderTime);
    }
  });
});
observer.observe({ type: "element", buffered: true });

Renderzeit von Cross-Origin-Bildern

Aus Sicherheitsgründen war der Wert der renderTime-Eigenschaft ursprünglich 0, wenn die Ressource eine Cross-Origin-Anfrage ist. Stattdessen sollte die loadTime-Eigenschaft als Fallback verwendet werden.

Browser können jetzt eine leicht gröbere Renderzeit in diesen Situationen offenlegen. Überprüfen Sie die Browser-Unterstützung.

Um genauere Cross-Origin-Renderzeit-Informationen offenzulegen, muss der Timing-Allow-Origin HTTP-Antwortheader gesetzt werden.

Ein Beispiel: Um https://developer.mozilla.org zu erlauben, eine genaue renderTime zu sehen, sollte die Cross-Origin-Ressource senden:

http
Timing-Allow-Origin: https://developer.mozilla.org

Alternativ können Sie startTime verwenden, welche den Wert von renderTime zurückgibt, falls dieser nicht 0 ist, und ansonsten den Wert von loadTime. Es wird jedoch empfohlen, den Timing-Allow-Origin-Header zu setzen, damit die Metriken genauer sind.

Wenn Sie startTime verwenden, können Sie Ungenauigkeiten kennzeichnen, indem Sie prüfen, ob renderTime benutzt wurde:

js
const isRenderTime = Boolean(entry.renderTime);

Spezifikationen

Spezifikation
Element Timing API
# dom-performanceelementtiming-rendertime

Browser-Kompatibilität