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
der PerformanceElementTiming
-Schnittstelle 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. Dies wird als das nächste Rendering definiert, das auftritt, nachdem das Bild vollständig geladen ist. Wenn die Timing-Berechtigungsprüfung fehlschlägt (wie im Timing-allow-origin-Header definiert), wird 0
zurückgegeben.
Für Textknoten wird dies der Text-Rendering-Zeitstempel sein. Dies wird definiert als der Zeitpunkt, zu dem das Element als Text gemalt 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 von vor der Beobachtererstellung zuzugreifen. Der Aufruf 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 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 feinere Renderzeit offenlegen in diesen Situationen. Überprüfen Sie die Browser-Kompatibilität.
Um genauere Cross-Origin-Renderzeitinformationen anzuzeigen, muss der Timing-Allow-Origin
HTTP-Response-Header gesetzt werden.
Zum Beispiel, um https://developer.mozilla.org
zu erlauben, eine genaue renderTime
zu sehen, sollte die Cross-Origin-Ressource senden:
Timing-Allow-Origin: https://developer.mozilla.org
Alternativ können Sie startTime
verwenden, die den Wert der renderTime
des Eintrags zurückgibt, wenn er 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 genauer sind.
Wenn Sie startTime
verwenden, können Sie Ungenauigkeiten kennzeichnen, indem Sie prüfen, ob renderTime
verwendet wurde:
const isRenderTime = entry.renderTime ? true : false;
Spezifikationen
Specification |
---|
Element Timing API # ref-for-dom-performanceelementtiming-rendertime① |