The PerformanceFrameTiming interface provides frame timing data about the browser's event loop. A frame represents the amount of work a browser does in one event loop such as processing DOM events, resizing, scrolling, rendering, CSS animations, etc. A frame rate of 60fps (frames per second) for a 60Hz refresh rate is the target for a good responsive user experience. This means the browser should process a frame in about 16.7ms.
The PerformanceNavigationTiming interface provides methods and properties to store and retrieve high resolution timestamps or 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.
The domComplete property returns a timestamp representing the time value equal to the time immediately before the user agent sets the current document readiness of the current document to complete.
The domContentLoadedEventEnd property returns a timestamp representing the time value equal to the time immediately after the current document's DOMContentLoaded event completes.
The domContentLoadedEventStart property returns a timestamp representing the time value equal to the time immediately before the user agent fires the DOMContentLoaded event at the current document.
The domInteractive property returns a timestamp representing the time value equal to the time immediately before the user agent sets the current document readiness of the current document to interactive.
The loadEventStart property returns a timestamp representing the time value equal to the time immediately before the load event of the current document is fired.
The redirectCount property returns a timestamp representing the number of redirects since the last non-redirect navigation under the current browsing context.
The unloadEventEnd property returns a timestamp representing the time value equal to the time immediately after the user agent finishes the unload event of the previous document. If there is no previous document, this property value is 0.
The unloadEventStart property returns a timestamp representing the time value equal to the time immediately before the user agent starts the unload event of the previous document. If there is no previous document, this property returns 0.
The PerformanceObserver interface is used to observe performance measurement events and be notified of new performance entries as they are recorded in the browser's performance timeline.
The PerformanceResourceTiming interface enables retrieving and analyzing detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script.
The connectEnd property returns the timestamp immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as SSL handshake and SOCKS authentication.
The decodedBodySize property returns the size (in octets) received from the fetch (HTTP or cache) of the message body, after removing any applied content-codings. If the resource is retrieved from an application cache or local resources, it returns the size of the payload after removing any applied content-codings.