PerformanceNavigationTiming

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.

* Some parts of this feature may have varying levels of support.

The PerformanceNavigationTiming interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document.

Only the current document is included in the performance timeline, so there is only one PerformanceNavigationTiming object in the performance timeline. It inherits all of the properties and methods of PerformanceResourceTiming and PerformanceEntry.

PerformanceEntry PerformanceResourceTiming PerformanceNavigationTiming

The following diagram shows all of the timestamp properties defined in PerformanceNavigationTiming.

Timestamp diagram listing timestamps in the order in which they are recorded for the fetching of a document

Instance properties

This interface extends the following PerformanceEntry properties by qualifying and constraining them as follows:

PerformanceEntry.entryType Read only

Returns "navigation".

PerformanceEntry.name Read only

Returns the document's URL. Note that text fragments, and any other fragment directives, are stripped from the URL.

PerformanceEntry.startTime Read only

Returns a DOMHighResTimeStamp with a value of 0.

PerformanceEntry.duration Read only

Returns a timestamp that is the difference between the PerformanceNavigationTiming.loadEventEnd and PerformanceEntry.startTime properties.

This interface also extends the following PerformanceResourceTiming properties by qualifying and constraining them as follows:

PerformanceResourceTiming.initiatorType Read only

Returns "navigation".

The interface also supports the following properties:

PerformanceNavigationTiming.activationStart Read only Experimental

A DOMHighResTimeStamp representing the time between when a document starts prerendering and when it is activated.

PerformanceNavigationTiming.criticalCHRestart Read only Experimental

A DOMHighResTimeStamp representing the time at which the connection restart occurred due to Critical-CH HTTP response header mismatch.

PerformanceNavigationTiming.domComplete Read only

A DOMHighResTimeStamp representing the time immediately before the user agent sets the document's readyState to "complete".

PerformanceNavigationTiming.domContentLoadedEventEnd Read only

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

PerformanceNavigationTiming.domContentLoadedEventStart Read only

A DOMHighResTimeStamp representing the time immediately before the current document's DOMContentLoaded event handler starts.

PerformanceNavigationTiming.domInteractive Read only

A DOMHighResTimeStamp representing the time immediately before the user agent sets the document's readyState to "interactive".

PerformanceNavigationTiming.loadEventEnd Read only

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

PerformanceNavigationTiming.loadEventStart Read only

A DOMHighResTimeStamp representing the time immediately before the current document's load event handler starts.

PerformanceNavigationTiming.notRestoredReasons Read only Experimental

A NotRestoredReasons object providing report data on reasons why the current document was blocked from using the back/forward cache (bfcache) on navigation.

PerformanceNavigationTiming.redirectCount Read only

A number representing the number of redirects since the last non-redirect navigation in the current browsing context.

PerformanceNavigationTiming.type Read only

A string representing the navigation type. Either "navigate", "reload", "back_forward" or "prerender".

PerformanceNavigationTiming.unloadEventEnd Read only

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

PerformanceNavigationTiming.unloadEventStart Read only

A DOMHighResTimeStamp representing the time immediately before the current document's unload event handler starts.

Instance methods

PerformanceNavigationTiming.toJSON()

Returns a JSON representation of the PerformanceNavigationTiming object.

Specifications

Specification
Navigation Timing Level 2
# sec-PerformanceNavigationTiming

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
PerformanceNavigationTiming
activationStart
Experimental
criticalCHRestart
Experimental
domComplete
domContentLoadedEventEnd
domContentLoadedEventStart
domInteractive
loadEventEnd
loadEventStart
notRestoredReasons
Experimental
redirectCount
toJSON
type
unloadEventEnd
unloadEventStart

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

See also