PerformanceNavigationTiming: unloadEventStart property
The unloadEventStart
read-only property returns a DOMHighResTimeStamp
representing the time immediately before the current document's unload
event handler starts.
Value
The unloadEventStart
property can have the following values:
- A
DOMHighResTimeStamp
representing the time immediately before the current document'sunload
event handler starts. 0
if there is no previous document.0
if 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 process theunload
event handler.
This is useful to measure the time of long running unload
event handlers.
js
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.
js
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:
js
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
BCD tables only load in the browser
See also
unload
event