Метод Window: requestIdleCallback()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Метод window.requestIdleCallback() помещает функцию в очередь для вызова в периоды бездействия браузера. Это позволяет разработчикам выполнять фоновую и низкоприоритетную работу в основном цикле обработки событий без влияния на критичные по задержке события, такие как анимация и реакция на ввод. Функции обычно вызываются в порядке очереди «первым пришёл, первым обслужен»; однако, обратные вызовы, у которых задан timeout, могут вызываться вне очереди, если необходимо, чтобы выполнить их до истечения таймаута.
Вы можете вызвать requestIdleCallback() внутри функции обратного вызова в режиме ожидания, чтобы запланировать другой обратный вызов не раньше следующего прохода цикла обработки событий.
Примечание: Обязательно указывать параметр timeout, для необходимой работы, в противном случае могут пройти несколько секунд, прежде чем обратный вызов будет выполнен.
Синтаксис
requestIdleCallback(callback) requestIdleCallback(callback, options)
Параметры
callback-
Ссылка на функцию, которая должна быть вызвана в ближайшем будущем, когда цикл обработки событий будет бездействовать. Функция обратного вызова получает объект
IdleDeadline, описывающий доступное время и то, вызван ли обратный вызов из-за истечения таймаута. optionsНеобязательно-
Содержит параметры конфигурации. В настоящее время определён только один параметр:
timeout-
Если истекли миллисекунды, указанные в этом параметре, а обратный вызов ещё не был вызван, то задача выполнения обратного вызова помещается в очередь цикла обработки событий (даже если это может отрицательно сказаться на производительности).
timeoutдолжно быть положительным значением, в противном случае оно игнорируется.
Возвращаемое значение
Идентификатор, который можно использовать для отмены обратного вызова, передав его в метод window.cancelIdleCallback().
Примеры
См. наш полный пример в статье API планирования фоновых задач в кооперативном режиме.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
requestIdleCallback |
47 | 79 | 55 | 34 | Нет | 47 | 55 | 34 | Нет | 5.0 | 47 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback