PerformanceElementTiming: Eigenschaft renderTime
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 renderTime
-Eigenschaft (schreibgeschützt) der Schnittstelle PerformanceElementTiming
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 ist definiert als die nächste Darstellung, die erfolgt, nachdem das Bild vollständig geladen wurde. Wenn die Timing-Erlaubnis-Prü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 ist definiert, wenn das Element als Text gerendert wird.
Beispiele
renderTime
protokollieren
In diesem Beispiel wird ein <img>
-Element beobachtet, indem das Attribut elementtiming
hinzugefügt wird. Ein PerformanceObserver
wird registriert, um alle Performance-Einträge vom Typ "element"
zu erhalten, und das buffered
-Flag wird verwendet, um auf Daten vor der Observer-Erstellung zuzugreifen. Das Aufrufen von entry.renderTime
gibt die Renderzeit des Bildelements 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 grob granulierte Renderzeit bereitstellen in diesen Situationen. Überprüfen Sie die Browser-Unterstützung.
Um genauere Informationen zur Cross-Origin-Renderzeit bereitzustellen, muss der HTTP-Antwort-Header Timing-Allow-Origin
gesetzt werden.
Zum Beispiel, um https://developer.mozilla.org
eine genaue renderTime
anzuzeigen, 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 ü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