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.
The following diagram shows all of the timestamp properties defined in PerformanceNavigationTiming.
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:
A DOMHighResTimeStamp representing the time between when a document starts prerendering and when it is activated.
A DOMHighResTimeStamp representing the time at which the connection restart occurred due to Critical-CH HTTP response header mismatch.
A DOMHighResTimeStamp representing the time immediately before the user agent sets the document's readyState to "complete".
A DOMHighResTimeStamp representing the time immediately after the current document's DOMContentLoaded event handler completes.
A DOMHighResTimeStamp representing the time immediately before the current document's DOMContentLoaded event handler starts.
A DOMHighResTimeStamp representing the time immediately before the user agent sets the document's readyState to "interactive".
A DOMHighResTimeStamp representing the time immediately after the current document's load event handler completes.
A DOMHighResTimeStamp representing the time immediately before the current document's load event handler starts.
A NotRestoredReasons object providing report data on reasons why the current document was blocked from using the back/forward cache (bfcache) on navigation.
A number representing the number of redirects since the last non-redirect navigation in the current browsing context.
A string representing the navigation type. Either "navigate", "reload", or "back_forward".
A DOMHighResTimeStamp representing the time immediately after the current document's unload event handler completes.
A DOMHighResTimeStamp representing the time immediately before the current document's unload event handler starts.
Returns a JSON representation of the PerformanceNavigationTiming object.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
PerformanceNavigationTiming |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
activationStart |
108 | 108 | No | 94 | No | 57 | No | 43 | No | 7.0 | 57 | No |
criticalCHRestart |
116 | 116 | No | 102 | No | 116 | No | 78 | No | 24.0 | 116 | No |
domComplete |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
domContentLoadedEventEnd |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
domContentLoadedEventStart |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
domInteractive |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
loadEventEnd |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
loadEventStart |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
notRestoredReasons |
125 | 125 | No | 111 | No | 125 | No | 83 | No | 27.0 | 125 | No |
redirectCount |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
toJSON |
57 | 16 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
type |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
unloadEventEnd |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
unloadEventStart |
57 | 12 | 58 | 44 | 15 | 57 | 58 | 43 | 15.1 | 7.0 | 57 | 15.1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming