This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

window.requestIdleCallback()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Метод window.requestIdleCallback() ставит в очередь функцию, которая будет вызываться во время периодов простоя браузера. Это позволяет разработчикам выполнять фоновую и низкоприоритетную работу в основном цикле событий, без влияния на такие критично важные события, как анимация и обработка ввода. Функции обычно вызываются в порядке добавления в очередь, однако функции с заданными timeout могут быть вызваны не по порядку, если необходимо запустить их до истечения таймаута.

Вы можете вызвать requestIdleCallback() внутри callback-функции в режиме ожидания для планирования запуска другой функции, который произойдёт не раньше, чем следующая фаза цикла событий.

Примечание: Параметр timeout настоятельно рекомендован для использования, потому что в противном случае может пройти несколько секунд прежде, чем будет вызвана callback-функция.

Синтаксис

js
requestIdleCallback(callback)
requestIdleCallback(callback, options)

Параметры

callback

Ссылка на функцию, которая должна быть вызвана в ближайшем будущем, когда цикл событий будет в режиме ожидания. Функции передаётся объект IdleDeadline, описывающий количество доступного времени и был ли запущена функция.

options Необязательный

Содержит необязательные параметры конфигурации. На текущий момент, определено только одно свойство:

timeout

Если количество миллисекунд, представленное этим параметром, истекло, а callback-функция ещё не была вызвана, то задача выполнения callback-функции ставится в очередь в цикле событий (даже если это может отрицательно повлиять на производительность). Значение timeout должно быть положительным числом, иначе будет проигнорировано.

Возвращаемое значение

Возвращает ID, который может быть использован для отмены callback-функции, с помощью метода window.cancelIdleCallback().

Пример

Посмотрите наш готовый пример в статье Cooperative Scheduling of Background Tasks API.

Спецификации

Specification
requestIdleCallback()
# the-requestidlecallback-method

Совместимость с браузерами

Смотрите также