window.requestIdleCallback()
Метод window.requestIdleCallback()
ставит в очередь функцию, которая будет вызываться во время периодов простоя браузера. Это позволяет разработчикам выполнять фоновую и низкоприоритетную работу в основном цикле событий, без влияния на такие критично важные события, как анимация и обработка ввода. Функции обычно вызываются в порядке добавления в очередь, однако функции с заданными timeout
могут быть вызваны не по порядку, если необходимо запустить их до истечения таймаута.
Вы можете вызвать requestIdleCallback()
внутри callback-функции в режиме ожидания для планирования запуска другой функции, который произойдёт не раньше, чем следующая фаза цикла событий.
Примечание: Параметр timeout
настоятельно рекомендован для использования, потому что в противном случае может пройти несколько секунд прежде, чем будет вызвана callback-функция.
Синтаксис
requestIdleCallback(callback)
requestIdleCallback(callback, options)
Параметры
callback
-
Ссылка на функцию, которая должна быть вызвана в ближайшем будущем, когда цикл событий будет в режиме ожидания. Функции передаётся объект
IdleDeadline
, описывающий количество доступного времени и был ли запущена функция. options
Необязательный-
Содержит необязательные параметры конфигурации. На текущий момент, определено только одно свойство:
timeout
-
Если количество миллисекунд, представленное этим параметром, истекло, а callback-функция ещё не была вызвана, то задача выполнения callback-функции ставится в очередь в цикле событий (даже если это может отрицательно повлиять на производительность). Значение
timeout
должно быть положительным числом, иначе будет проигнорировано.
Возвращаемое значение
Возвращает ID, который может быть использован для отмены callback-функции, с помощью метода window.cancelIdleCallback()
.
Пример
Посмотрите наш готовый пример в статье Cooperative Scheduling of Background Tasks API.
Спецификации
Specification |
---|
requestIdleCallback() Cooperative Scheduling of Background Tasks # the-requestidlecallback-method |
Совместимость с браузерами
BCD tables only load in the browser