哪个最适合画布动画?requestAnimFrame 还是 setInterval ?
问问题
1489 次
2 回答
5
requestAnimationFrame
保证您的动画在浏览器准备好绘制新帧时准确运行。如果您使用setInterval
,您将面临以下风险:
- 使间隔太短,在这种情况下,您会耗尽电池寿命执行永远不会显示的过于频繁的绘制操作
- 使间隔过长,在这种情况下,您可以通过使用更短的间隔来获得更平滑的动画
requestAnimationFrame
可以在页面不可见时节流以降低运行频率(这可以节省电池寿命),但一些实现setInterval
也这样做(目前在 Firefox 和 Chrome 中)。
requestAnimationFrame
从头开始构建,旨在将其用于动画;setInterval
旨在执行任何需要定期操作的操作。如果您正在制作动画(尤其是画布动画),我建议您使用requestAnimationFrame
,并回退到setInterval
旧浏览器。
于 2012-12-12T14:13:18.440 回答
-1
但是您可以在大函数调用中使用 setInterval ,即 load 并且仅在加载窗口时调用它:
function load()
{
var intervalle = x;
var game= setInterval(process,intervalle);
...
}
window.addEventListener("load",load,true);
于 2012-12-12T16:28:43.870 回答