PerformanceNavigationTiming: loadEventEnd property

The loadEventEnd read-only property returns a DOMHighResTimeStamp representing the time immediately after the current document's load event handler completes.

Value

A DOMHighResTimeStamp representing the time immediately after the current document's load event handler completes.

Examples

Measuring load event handler time

The loadEventEnd property can be used to measure how long it takes to process the load event handler.

This is useful to measure the time of long running load event handlers.

js
window.addEventListener("load", (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 loadEventTime = entry.loadEventEnd - entry.loadEventStart;
    if (loadEventTime > 0) {
      console.log(`${entry.name}: load event handler time: ${loadEventTime}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.loadEventEnd - entry.loadEventStart;
  if (loadEventTime > 0) {
    console.log(`${entry.name}:
      load event handler time: ${loadEventTime}ms`);
  }
});

Specifications

Specification
Navigation Timing Level 2
# dom-performancenavigationtiming-loadeventend

Browser compatibility

BCD tables only load in the browser

See also