docs.rodeo

MDN Web Docs mirror

PerformanceLongTaskTiming

{{SeeCompatTable}} {{APIRef("Performance API")}} 

The PerformanceLongTaskTiming interface provides information about tasks that occupy the UI thread for 50 milliseconds or more.

Description

Long tasks that block the main thread for 50ms or more cause, among other issues:

A long task is any uninterrupted period where the main UI thread is busy for 50ms or longer. Common examples include:

Long tasks refer to “culprit browsing context container”, or “the container” for short, which is the top-level page, {{HTMLElement("iframe")}} , {{HTMLElement("embed")}}  or {{HTMLElement("object")}}  that the task occurred within.

For tasks that don’t occur within the top-level page and for figuring out which container is responsible for the long task, the {{domxref("TaskAttributionTiming")}}  interface provides the containerId, containerName and containerSrc properties, which may provide more information about the source of the task.

PerformanceLongTaskTiming inherits from {{domxref("PerformanceEntry")}} .

{{InheritanceDiagram}} 

Instance properties

This interface extends the following {{domxref("PerformanceEntry")}}  properties for long task timing performance entry types by qualifying them as follows:

This interface also supports the following properties:

Instance methods

Examples

Getting long tasks

To get long task timing information, create a {{domxref("PerformanceObserver")}}  instance and then call its observe() method, passing in "longtask" as the value of the type option. You also need to set buffered to true to get access to long tasks the user agent buffered while constructing the document. The PerformanceObserver object’s callback will then be called with a list of PerformanceLongTaskTiming objects which you can analyze.

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(entry);
  });
});

observer.observe({ type: "longtask", buffered: true });

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN