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

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
requestIdleCallback

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

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