PerformanceNavigationTiming: unloadEventStart-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2021.
Die schreibgeschützte unloadEventStart
-Eigenschaft gibt einen DOMHighResTimeStamp
zurück, der die Zeit unmittelbar vor dem Start des unload
-Ereignishandlers des vorherigen Dokuments darstellt.
Wert
Die unloadEventStart
-Eigenschaft kann die folgenden Werte haben:
- Ein
DOMHighResTimeStamp
, der die Zeit unmittelbar vor dem Start desunload
-Ereignishandlers des vorherigen Dokuments darstellt. 0
, wenn es kein vorheriges Dokument gibt.0
, wenn die vorherige Seite von einer anderen Herkunft stammt.
Beispiele
Zeitmessung des unload
-Ereignishandlers
Die unloadEventStart
-Eigenschaft kann verwendet werden, um zu messen, wie lange die Verarbeitung des unload
-Ereignishandlers dauert.
Dies ist nützlich, um die Zeit von lang andauernden unload
-Ereignishandlern zu messen.
window.addEventListener("unload", (event) => {
// Some long running code
});
Beispiel unter Verwendung eines PerformanceObserver
, der über neue navigation
-Performance-Einträge benachrichtigt, sobald sie in der Performance-Timeline des Browsers aufgezeichnet werden. Verwenden Sie die buffered
-Option, um auf Einträge 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 unter Verwendung von Performance.getEntriesByType()
, die nur navigation
-Performance-Einträge zeigt, die zum Zeitpunkt des Aufrufs dieser Methode in der Performance-Timeline des Browsers vorhanden sind:
const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
const loadEventTime = entry.unloadEventEnd - entry.unloadEventStart;
if (unloadEventTime > 0) {
console.log(`${entry.name}:
load event handler time: ${unloadEventTime}ms`);
}
});
Spezifikationen
Specification |
---|
Navigation Timing Level 2 # dom-performancenavigationtiming-unloadeventstart |
Browser-Kompatibilität
Siehe auch
unload
Ereignis