Javascript 在requestIdleCallback中使用requestAnimationFrame

Javascript 在requestIdleCallback中使用requestAnimationFrame,javascript,dom,requestanimationframe,requestidlecallback,Javascript,Dom,Requestanimationframe,Requestidlecallback,如果我从JS对DOM中的更改设置动画(例如,将节点的textContent的值从1更改为500),在requestIdleCallback中使用requestAnimationFrame或requestAnimationFrame会更好吗 如果要为某些代码设置动画,则只使用requestAnimationFrame,如果只想在浏览器无事可做时执行操作,则使用requestIdleCallback 为了简化事情,让我们考虑两个代码>请求动画框架< /C>和 RealStestCelaBuff< /

如果我从JS对DOM中的更改设置动画(例如,将节点的textContent的值从1更改为500),在
requestIdleCallback
中使用
requestAnimationFrame
requestAnimationFrame
会更好吗

如果要为某些代码设置动画,则只使用
requestAnimationFrame
,如果只想在浏览器无事可做时执行操作,则使用
requestIdleCallback

为了简化事情,让我们考虑两个代码>请求动画框架< /C>和<代码> RealStestCelaBuff< /C> > <代码> SETTIMEOUT/<代码>调用,使用变量超时参数。

requestAnimationFrame
将是
setTimeout(fn,直到下一次屏幕刷新的时间)
<代码>fn将在页面绘制到屏幕之前调用。这是目前我们制作动画的最佳计时器,因为它确保我们在每一实际帧中只进行一次视觉修改,速度与监视器能够渲染的速度相同,因此,如果我们的代码足够快的话,我们可以在每一帧中进行修改

requestIdleCallback
将是
setTimeout(fn,直到空闲的时间)
<代码>fn将在浏览器无事可做时立即调用。这可以立即进行,也可以在几个事件循环迭代中进行

因此,虽然两者都有类似的API,但它们提供了完全不同的功能,唯一可行的动画制作方法是
requestAnimationFrame
,因为
requestIdleCallback
基本上与渲染没有任何联系