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().

Пример

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

Specification
requestIdleCallback()
# the-requestidlecallback-method

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

BCD tables only load in the browser

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