PerformanceNavigationTiming: Eigenschaft unloadEventEnd
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2021 browserübergreifend verfügbar.
Die schreibgeschützte Eigenschaft unloadEventEnd gibt einen DOMHighResTimeStamp zurück, der den Zeitpunkt unmittelbar nach dem Abschluss des Event-Handlers für das unload-Ereignis des vorherigen Dokuments darstellt.
Wert
Die Eigenschaft unloadEventEnd kann die folgenden Werte haben:
- Ein
DOMHighResTimeStamp, der den Zeitpunkt unmittelbar nach dem Abschluss des Event-Handlers für dasunload-Ereignis des vorherigen Dokuments darstellt. 0, wenn kein vorheriges Dokument vorhanden ist.0, wenn die vorherige Seite von einem anderen Origin stammt.
Beispiele
>Messen der Ausführungszeit des unload-Event-Handlers
Die Eigenschaft unloadEventEnd kann verwendet werden, um zu messen, wie lange die Verarbeitung des Event-Handlers für das unload-Ereignis dauert.
Dies ist nützlich, um die Ausführungszeit von lang laufenden Event-Handlern für das unload-Ereignis zu messen.
window.addEventListener("unload", (event) => {
// Some long running code
});
Beispiel mit einem PerformanceObserver, der über neue navigation-Performance-Einträge informiert, sobald sie in der Performance-Zeitachse des Browsers aufgezeichnet werden. Verwenden Sie die Option buffered, um auf Einträge von vor der Erstellung des Observers zuzugreifen.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const unloadEventTime = entry.unloadEventEnd - entry.unloadEventStart;
if (unloadEventTime > 0) {
console.log(
`${entry.name}: unload event handler time: ${unloadEventTime}ms`,
);
}
});
});
observer.observe({ type: "navigation", buffered: true });
Beispiel mit Performance.getEntriesByType(), das nur navigation-Performance-Einträge anzeigt, die zum Zeitpunkt des Aufrufs dieser Methode in der Performance-Zeitachse des Browsers vorhanden sind:
const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
const unloadEventTime = entry.unloadEventEnd - entry.unloadEventStart;
if (unloadEventTime > 0) {
console.log(`${entry.name}:
load event handler time: ${unloadEventTime}ms`);
}
});
Spezifikationen
| Spezifikation |
|---|
| Navigation Timing Level 2> # dom-performancenavigationtiming-unloadeventend> |
Browser-Kompatibilität
Siehe auch
unload-Ereignis