requestIdleCallback
優先度の低い処理を、どうせブラウザが暇になる時間(フレームの合間)に実行させる Web API。描画や入力のような重要な処理を邪魔せずに済む、「待てる仕事」向けの仕組み。
分析データの送信、データの前処理、キャッシュの温め、遅延初期化など、急がない仕事はある。すぐ実行すると描画の時間を奪い、画面がカクついたりクリックへの反応が鈍くなったりする。requestIdleCallback(callback) は処理をキューに入れ、他のタスクの合間の空き時間にブラウザが実行する。コールバックには残りの空き時間を示す「deadline」が渡されるので、仕事を小分けにできる。
用途は、重要でないバックグラウンド処理、テレメトリ、投機的なプリロード、バッチ処理など。毎フレーム必ず実行すべき処理のための requestAnimationFrame とは対極にある。制約として Safari の対応が不安定なので、タイムアウトによるフォールバックを常に用意したい。ブラウザ内の作業スケジューリングの一部で、React のタイムスライシングとも関係が深い。