PerformanceNavigationTiming: toJSON() method
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.
The toJSON()
method of the PerformanceNavigationTiming
interface is a serializer; it returns a JSON representation of the PerformanceNavigationTiming
object.
Syntax
js
toJSON()
Parameters
None.
Return value
A JSON
object that is the serialization of the PerformanceNavigationTiming
object.
Examples
Using the toJSON method
In this example, calling entry.toJSON()
returns a JSON representation of the PerformanceNavigationTiming
object.
js
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
console.log(entry.toJSON());
});
});
observer.observe({ entryTypes: ["navigation"] });
This would log a JSON object like so:
json
{
"name": "https://en.wikipedia.org/wiki/Main_Page",
"entryType": "navigation",
"startTime": 0,
"duration": 227.60000002384186,
"initiatorType": "navigation",
"nextHopProtocol": "h2",
"renderBlockingStatus": "blocking",
"workerStart": 0,
"redirectStart": 4,
"redirectEnd": 71.40000000596046,
"fetchStart": 71.40000000596046,
"domainLookupStart": 71.40000000596046,
"domainLookupEnd": 71.40000000596046,
"connectStart": 71.40000000596046,
"connectEnd": 71.40000000596046,
"secureConnectionStart": 71.40000000596046,
"requestStart": 73.7000000178814,
"responseStart": 102.90000000596046,
"responseEnd": 105.2000000178814,
"transferSize": 19464,
"encodedBodySize": 19164,
"decodedBodySize": 83352,
"serverTiming": [
{
"name": "cache",
"duration": 0,
"description": "hit-front"
},
{
"name": "host",
"duration": 0,
"description": "cp3062"
}
],
"unloadEventStart": 0,
"unloadEventEnd": 0,
"domInteractive": 178.10000002384186,
"domContentLoadedEventStart": 178.2000000178814,
"domContentLoadedEventEnd": 178.2000000178814,
"domComplete": 227.60000002384186,
"loadEventStart": 227.60000002384186,
"loadEventEnd": 227.60000002384186,
"type": "navigate",
"redirectCount": 1,
"activationStart": 0
}
To get a JSON string, you can use JSON.stringify(entry)
directly; it will call toJSON()
automatically.
Specifications
Specification |
---|
Navigation Timing Level 2 # dom-performancenavigationtiming-tojson |
Browser compatibility
BCD tables only load in the browser