Javascript 画布动画的requestAnimFrame或setInterval?

Javascript 画布动画的requestAnimFrame或setInterval?,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,哪一个是画布动画的最佳选择?requestAnimationFrame或setInterval?requestAnimationFrame保证您的动画在浏览器准备绘制新帧时准确运行。如果使用setInterval,则存在以下风险之一: 使间隔太短,在这种情况下,您会耗尽电池寿命,执行过频繁的绘图操作,而这些操作将永远不会显示 使间隔过长,在这种情况下,可以通过使用较短的间隔获得更平滑的动画 当页面不可见时,requestAnimationFrame可以减少运行频率,这可以节省电池寿命,但目前在F

哪一个是画布动画的最佳选择?requestAnimationFrame或setInterval?

requestAnimationFrame保证您的动画在浏览器准备绘制新帧时准确运行。如果使用setInterval,则存在以下风险之一:

使间隔太短,在这种情况下,您会耗尽电池寿命,执行过频繁的绘图操作,而这些操作将永远不会显示 使间隔过长,在这种情况下,可以通过使用较短的间隔获得更平滑的动画 当页面不可见时,requestAnimationFrame可以减少运行频率,这可以节省电池寿命,但目前在Firefox和Chrome中,setInterval的一些实现也可以做到这一点

requestAnimationFrame从头开始构建,目的是将其用于动画;setInterval设计用于执行任何需要定期操作的操作。如果您正在制作动画,尤其是画布动画,我建议您使用requestAnimationFrame,对于较旧的浏览器,可以回退到setInterval。

requestAnimationFrame保证您的动画在浏览器准备绘制新帧时准确运行。如果使用setInterval,则存在以下风险之一:

使间隔太短,在这种情况下,您会耗尽电池寿命,执行过频繁的绘图操作,而这些操作将永远不会显示 使间隔过长,在这种情况下,可以通过使用较短的间隔获得更平滑的动画 当页面不可见时,requestAnimationFrame可以减少运行频率,这可以节省电池寿命,但目前在Firefox和Chrome中,setInterval的一些实现也可以做到这一点


requestAnimationFrame从头开始构建,目的是将其用于动画;setInterval设计用于执行任何需要定期操作的操作。如果您正在制作动画,尤其是画布动画,我建议您使用requestAnimationFrame,对于较旧的浏览器,可以回退到setInterval。

但是您可以在大型函数调用中使用setInterval,即加载,并且仅在加载窗口时调用它:

function load()
{
   var intervalle = x;
   var game= setInterval(process,intervalle);
   ...

}
window.addEventListener("load",load,true);

但您可以在大函数调用(即加载)中使用setInterval,并仅在加载窗口时调用它:

function load()
{
   var intervalle = x;
   var game= setInterval(process,intervalle);
   ...

}
window.addEventListener("load",load,true);

setInterval的速度要快得多,requestAnimFrame专用于动画。setInterval只能用作回退。setInterval的速度要快得多,requestAnimFrame专用于动画。setInterval只能用作后备策略。-1:这如何回答这个问题?是的,你当然可以使用setInterval来制作动画,但是这个答案并不能解释为什么setInterval或requestAnimationFrame更好。-1:这是如何回答这个问题的?是的,您当然可以将setInterval用于动画,但这个答案并没有解释为什么setInterval或requestAnimationFrame更好。