PerformanceNavigationTiming: unloadEventStart property
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.
The unloadEventStart read-only property returns a DOMHighResTimeStamp representing the time immediately before the previous document's unload event handler starts.
Value
The unloadEventStart property can have the following values:
- A
DOMHighResTimeStamprepresenting the time immediately before the previous document'sunloadevent handler starts. 0if there is no previous document.0if the previous page was on another origin.
Examples
>Measuring unload event handler time
The unloadEventStart property can be used to measure how long it takes to process the unload event handler.
This is useful to measure the time of long running unload event handlers.
window.addEventListener("unload", (event) => {
// Some long running code
});
Example using a PerformanceObserver, which notifies of new navigation performance entries as they are recorded in the browser's performance timeline. Use the buffered option to access entries from before the observer creation.
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 });
Example using Performance.getEntriesByType(), which only shows navigation performance entries present in the browser's performance timeline at the time you call this method:
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`);
}
});
Specifications
| Specification |
|---|
| Navigation Timing Level 2> # dom-performancenavigationtiming-unloadeventstart> |
Browser compatibility
Loading…
See also
unloadevent