This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

PerformanceFrameTiming is an abstract interface that 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.

An application can register a PerformanceObserver for "frame" performance entry types and the observer can retrieve data about the duration of each frame event. This information can be used to help identify areas that take too long to provide a good user experience.


This interface has no properties but it extends the following PerformanceEntry properties (for "frame" performance entry types) by qualifying and constraining the properties as follows:

Returns "frame".
Returns the document's address.
Returns the timestamp when the frame was started.
Returns a timestamp indicating the difference between the startTimes of two successive frames.


This interface has no methods.


See the example in Using the Frame Timing API.


Specification Status Comment
Frame Timing
The definition of 'PerformanceFrameTiming' in that specification.
Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support No1 ? No2 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No1 No1 ? No No No ?

1. See Chrome bug 120796

2. See bug 1158032

See also

Document Tags and Contributors

Contributors to this page: fscholz, jpmedley, tophf, rolfedh, AFBarstow
Last updated by: fscholz,