requestAnimationFrameはページが隠れてるときは、実行されないと思っていましたが、Firefoxでは実行されてるっぽかったので、各ブラウザがどういう挙動になるか調査してみました。
ついでにsetTimeout / setIntervalもページが隠れてるときどのくらい変化するか調べました。
結果
| Browser | request Animation Frame |
setTimeout setInterval* |
|---|---|---|
| Chrome 70 | 0 | 約1回/秒 |
| Firefox 63 | 0.5 ~ 1回/秒 | 約1回/秒 |
| Safari 11 | 0 | 約1回/秒 |
| IE11 | 0 | 変化無し |
| Edge 12 | 0 | 変化無し |
| iOS Safari 12 |
0 | 0.01 ~ 1回/秒 |
| Android Chrome 70 |
0 | 約1回/秒 |
| *setTimeout / setInterval のdelayは1000/60秒 |
Firefoxのみページが隠れてるときも多少実行されました。
setTimeout / setIntervalもページが隠れてるときは約1回/秒ほどのに抑えられますが、IE11とEdgeは変化なしでした。