哪个最适合 Canvas 动画? requestAnimFrame 还是 setInterval?
最佳答案
requestAnimationFrame
保证您的动画在浏览器准备好绘制新帧时准确运行。如果您使用 setInterval
,您将面临以下风险:
- 将间隔设置得太短,在这种情况下,执行过于频繁且永远不会显示的绘制操作会耗尽电池生命周期
- 使间隔太长,在这种情况下,您可以通过使用较短的间隔来获得更平滑的动画
requestAnimationFrame
可以在页面不可见时限制运行频率(这可以节省电池生命周期),但 setInterval
的某些实现也可以这样做(目前在Firefox 和 Chrome)。
requestAnimationFrame
是从头开始构建的,其目的是用于动画; setInterval
旨在执行任何需要定期操作的操作。如果您正在制作动画(尤其是 Canvas 动画),我建议使用 requestAnimationFrame
,并为旧版浏览器回退到 setInterval
。
关于javascript - requestAnimFrame 或 setInterval 用于 Canvas 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841115/