Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод window.requestIdleCallback() ставит в очередь функцию, которая будет вызываться во время периодов простоя браузера. Это позволяет разработчикам выполнять фоновую и низкоприоритетную работу в цикле основного события, без воздействия такими критично долгими событиями, как анимация и ввод ответа (прим.пер. "input responce"). Функции, обычно, вызываются в порядке "первый вошёл - первый вышел" (прим.пер. "first-in-first-out"); однако, callback'и с заданными timeout, могут быть вызваны вне порядка (прим.пер. "out-of-order"), если необходимо запустить их до истечения таймаута.

Вы можете вызвать requestIdleCallback() внутри callback-функции в режиме ожидания для планирования другого callback'а, который произойдёт не раньше, чем следующий проход через цикл событий.

Опция timeout строго рекомендована для работы, в противном случае может пройти несколько секунд прежде, чем быдет вызван обратный вызов .

Синтаксис

var handle = window.requestIdleCallback(callback[, options])

Возвращаемое значение

Возвращает ID, который может быть использован для отмены callback'а, передав значение в метод window.cancelIdleCallback().

Параметры

callback
Ссылка на функцию, что должна быть вызвана в ближайшем будущем, когда цикл событий в режиме ожидания. Функции передаётся объект IdleDeadline описывающий общее количество доступного времени и независимо от того, был ли выполнен callback, потому что таймаут истёк.
options Необязательный
Содержит опциональные параметры конфигурации. На текущий момент, определено только одно свойство:
  • timeout: Если задан timeout и имеет положительное значение, а callback ещё не был вызван по времени наступления миллисекундного timeout, callback будет вызван в течение следующего периода простоя, даже если это может привести к негативному влиянию на производительность.

Пример

Посмотрите наш готовый пример в статье Cooperative Scheduling of Background Tasks API.

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

Specification Status Comment
Cooperative Scheduling of Background Tasks Предложенная рекомендация Initial definition.

Браузерная совместимость

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 47 Нет 55 (55) Нет 34 Нет
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile
Basic support 47 47 55.0 (55) Нет Нет ? Нет

requestIdleCallback() включён в Firefox 53 но по умолчанию отключён. Он по умолчанию включён, начиная с Firefox 55.

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

Метки документа и участники

 Внесли вклад в эту страницу: Bargamut
 Обновлялась последний раз: Bargamut,