PerformanceElementTiming: renderTime-Eigenschaft
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 schreibgeschützte Eigenschaft renderTime
des PerformanceElementTiming
-Interfaces gibt die Renderzeit des zugehörigen Elements zurück.
Wert
Ein DOMHighResTimeStamp
mit der Renderzeit des Elements.
Für Bilder wird dies der Bild-Rendering-Zeitstempel sein. Dieser wird als der nächste Zeichenvorgang definiert, der nach dem vollständigen Laden des Bildes erfolgt. Wenn die Timing-Erlaubnisüberprüfung fehlschlägt (wie durch den Timing-Allow-Origin-Header definiert), wird 0
zurückgegeben.
Für Textknoten wird dies der Text-Rendering-Zeitstempel sein. Dies wird definiert, wenn das Element textuell gezeichnet wird.
Beispiele
Protokollierung von renderTime
In diesem Beispiel wird ein <img>
-Element 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 vor der Erstellung des Observers zuzugreifen. Das Aufrufen von entry.renderTime
gibt die Renderzeit des Bild-Elements zurück.
<img
src="image.jpg"
alt="a nice image"
elementtiming="big-image"
id="myImage" />
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 bei 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 grobkörnige Renderzeit offenlegen in diesen Situationen. Prüfen Sie die Browser-Kompatibilität.
Um genauere Cross-Origin-Renderzeit-Informationen preiszugeben, muss der Timing-Allow-Origin
HTTP-Response-Header gesetzt werden.
Zum Beispiel sollte die Cross-Origin-Ressource senden, um https://developer.mozilla.org
eine genaue renderTime
zu erlauben:
Timing-Allow-Origin: https://developer.mozilla.org
Alternativ können Sie startTime
verwenden, das den Wert der renderTime
des Eintrags zurückgibt, wenn es nicht 0
ist, und andernfalls den Wert der loadTime
dieses Eintrags. Es wird jedoch empfohlen, den Timing-Allow-Origin
-Header zu setzen, damit die Metriken genauere Ergebnisse liefern.
Wenn Sie startTime
verwenden, können Sie Ungenauigkeiten feststellen, indem Sie überprüfen, ob renderTime
verwendet wurde:
const isRenderTime = entry.renderTime ? true : false;
Spezifikationen
Specification |
---|
Element Timing API # ref-for-dom-performanceelementtiming-rendertime① |
Browser-Kompatibilität
BCD tables only load in the browser