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: renderTime-Eigenschaft

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 schreibgeschützte Eigenschaft renderTime der Schnittstelle PerformanceElementTiming gibt den Zeitpunkt zurück, zu dem das zugehörige Element gerendert wurde.

Wert

Ein DOMHighResTimeStamp, der den Zeitpunkt angibt, zu dem das Element gerendert wurde.

Bei Bildern ist dies der Zeitstempel für das Rendern des Bildes. Er entspricht dem nächsten Zeichenvorgang, nachdem das Bild vollständig geladen wurde. Wenn die Timing-Allow-Prüfung fehlschlägt (wie durch den Header Timing-Allow-Origin definiert), wird 0 zurückgegeben.

Bei Textknoten ist dies der Zeitstempel für das Rendern des Textes. Er gibt an, wann der Text des Elements gezeichnet wird.

Renderzeit von Bildern aus anderen Ursprüngen

Aus Sicherheitsgründen war der Wert der Eigenschaft renderTime ursprünglich 0, wenn die Ressource über eine ursprungsübergreifende Anfrage geladen wurde. Stattdessen sollte die Eigenschaft loadTime als Ersatzwert verwendet werden.

Browser können in diesen Fällen inzwischen eine etwas weniger genaue Renderzeit bereitstellen. Prüfen Sie die Browser-Unterstützung.

Um genauere Informationen zur Renderzeit von Ressourcen aus anderen Ursprüngen bereitzustellen, muss der HTTP-Antwortheader Timing-Allow-Origin gesetzt werden.

Damit beispielsweise https://developer.mozilla.org einen genauen renderTime-Wert sehen kann, sollte die Ressource aus einem anderen Ursprung Folgendes senden:

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

Alternativ können Sie startTime verwenden. Diese Eigenschaft gibt den renderTime-Wert des Eintrags zurück, sofern er nicht 0 ist, andernfalls den Wert von loadTime. Es wird jedoch empfohlen, den Header Timing-Allow-Origin zu setzen, damit die Messwerte genauer sind.

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

js
const isRenderTime = Boolean(entry.renderTime);

Beispiele

renderTime protokollieren

In diesem Beispiel wird ein <img>-Element mithilfe des Attributs elementtiming beobachtet. Ein PerformanceObserver wird registriert, um alle Performance-Einträge vom Typ "element" abzurufen. Mit dem Flag buffered können auch Daten aus der Zeit vor der Erstellung des Observers abgerufen werden. Der Aufruf von entry.renderTime gibt den Zeitpunkt zurück, zu dem das Bildelement gerendert wurde.

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 });

Spezifikationen

Spezifikation
Element Timing API
# dom-performanceelementtiming-rendertime

Browser-Kompatibilität