PerformanceNavigationTiming
===========================

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](/en-US/docs/Web/API/PerformanceNavigationTiming/timestamp-diagram.svg)

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.

`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.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.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
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* `Performance.navigation`
* `PerformanceNavigation`