--- title: requestIdleCallback slug: Web/API/Window/requestIdleCallback tags: - API - HTML DOM - JavaScript timer - Reference - Window translation_of: Web/API/Window/requestIdleCallback ---
{{APIRef("HTML DOM")}}{{SeeCompatTable}}
window.requestIdleCallback()
メソッドを利用すると、ブラウザーがアイドル状態の時に実行される関数をキューに登録できます。これにより、アニメーションや入力への応答など、遅延が問題となる処理に影響を与えることなく、優先度の低いバックグラウンド処理をメインスレッド内で実行させられます。キューに登録された関数は、関数登録時に設定したタイムアウト時間(timeout
)に達していない限り、登録順に呼び出されます。
requestIdleCallback()
をアイドルコールバック関数からコールし、次のイベントループ以降で実行されるようにスケジュールもできます。
timeout
は必須のタスクにおいては設定することを強くおすすめします。設定しない場合、コールバックが実行するまでに数秒かかってしまう可能性もあるからです。var handle = window.requestIdleCallback(callback[, options])
{{domxref("Window.cancelIdleCallback()")}} メソッドで、実行をキャンセルする際に使用するIDを返します。
callback
options
{{optional_inline}}timeout
:timeout
に正の値が指定され、かつコールバックがその値の期間(ミリ秒)内に実行されていない場合、コールバックは次のアイドル期間に実行されます。それがパフォーマンスに悪影響があったとしても、それを加味することはありません。Cooperative Scheduling of Background Tasks APIの記事で、例を一式紹介しています。
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('Background Tasks')}} | {{Spec2('Background Tasks')}} | 初期定義 |
{{Compat("api.Window.requestIdleCallback")}}