The window.requestIdleCallback() method queues a function to be called during a browser's idle periods. This enables developers to perform background and low priority work on the main event loop, without impacting latency-critical events such as animation and input response. Functions are generally called in first-in-first-out order unless the function's timeout is reached before the browser calls it.


var handle = window.requestIdleCallback(callback[, options])


An unsigned long integer that can be used to cancel the callback using the Window.cancelIdleCallback() method.


A reference to a function that should be called in the near future. The callback function takes a deadline argument with the following properties:
  • timeRemaining: A reference to a method that returns a DOMHighResTimeStamp.
  • didTimeout: A boolean that returns false if the callback was invoked by the user agent during idle, and true otherwise (e.g. if a timeout option was given and expired before there was sufficient idle time).
options Optional
Contains optional configuration parameters. It has the following property:
  • timeout: The minimum time that must pass before calling the callback function. This value is given in milliseconds.


Specification Status Comment
Cooperative Scheduling of Background Tasks Working Draft Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 47 No support[1] No support 34 No support
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support 47 ? ? ? ? ? 47

[1] On track for release in Firefox 52, see bug 1198381.

Document Tags and Contributors

 Contributors to this page: jgraham, Azzola, Ugoku, JCE, jyasskin, jpmedley, DomenicDenicola, Krinkle, rolfedh
 Last updated by: jgraham,