requestAnimationFrame

https://developer.mozilla.org/ja/docs/Web/API/Window/requestAnimationFrame
requestAnimationFrame(f)は、setTimeout(f, ms)に似た、処理実行を予約するHTML標準関数。
setTimeoutは指定した「時間の経過」タイミングで処理が実行されるが、requestAnimationFrameは「次の画面描画の更新前」タイミングで処理が実行される。



指定される処理が十分に軽い場合は、ディスプレイのリフレッシュレートと同じ更新タイミングになる。
つまり60Hzのディスプレイなら60分の1秒後に処理実行される。

setIntervalと違って一定間隔ごとの更新をしてくれるわけではないので、連続した更新をしたいなら自前でrequestAnimationFrameを毎回呼ばないといけない。