--- title: window.requestIdleCallback() slug: Web/API/Window/requestIdleCallback translation_of: Web/API/Window/requestIdleCallback ---
Метод window.requestIdleCallback() ставит в очередь функцию, которая будет вызываться во время периодов простоя браузера. Это позволяет разработчикам выполнять фоновую и низкоприоритетную работу в цикле основного события, без воздействия такими критично долгими событиями, как анимация и обработка ввода. Функции, обычно, вызываются в порядке очереди "первый вошёл - первый вышел"; однако колбэк-функции с заданными timeout, могут быть вызваны не по порядку, если необходимо запустить их до истечения таймаута.
Вы можете вызвать requestIdleCallback() внутри колбэк-функции в режиме ожидания для планирования другого колбэка, который произойдёт не раньше, чем следующий проход через цикл событий.
timeout настоятельно рекомендована для работы, в противном случае может пройти несколько секунд прежде, чем будет вызван колбэк.var handle = window.requestIdleCallback(callback[, options])
Возвращает ID, который может быть использован для отмены колбэка, передав значение в метод {{domxref("window.cancelIdleCallback()")}}.
callbackoptions {{optional_inline}}timeout: Если задан timeout и имеет положительное значение, а callback ещё не был вызван по времени наступления миллисекундного timeout, callback будет вызван в течение следующего периода простоя, даже если это может привести к негативному влиянию на производительность.Посмотрите наш готовый пример в статье Cooperative Scheduling of Background Tasks API.
| Спецификация | Статус | Комментарий |
|---|---|---|
| {{SpecName('Background Tasks')}} | {{Spec2('Background Tasks')}} | Initial definition. |
{{CompatibilityTable}}
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Basic support | {{CompatChrome(47)}} | {{CompatNo}} | {{CompatGeckoDesktop(55)}} | {{CompatNo}} | {{CompatOpera(34)}} | {{CompatNo}} |
| Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | {{CompatChrome(47)}} | {{CompatChrome(47)}} | {{CompatGeckoMobile(55)}} | {{CompatNo}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} |
requestIdleCallback() включён в Firefox 53 но по умолчанию отключён. По умолчанию включён, начиная с Firefox 55.