window.requestIdleCallback()

Limited availability

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

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
Please take two minutes to fill out our short survey.

Метод 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

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

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