在requestAnimationFrame中,浏览器中的刷新率和帧率有什么区别?

时间:2017-02-09 03:49:20

标签: javascript animation browser rendering frontend

据我所知,对于普通显示器,刷新率为60 / s,但在浏览器中进行渲染过程时帧速率是多少?我已经检查了很多参考资料,告诉我你是否想要获得更好的动画性能,你需要保持帧速率与刷新率同步,并且使用requestAnimationFrame会很好。这究竟意味着什么?谁通过javascript执行制作动画中的帧?它是由javascript本身生成的吗?那么css过渡怎么样?有人可以为我详细解释一下吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

浏览器确定刷新窗口的速率。可以在JavaScript中以大于此值的速率刷新(例如,通过执行setInterval(redraw, 10)每10ms(100 fps)重绘一次),但是高于浏览器的刷新率是轻浮的;浏览器不会快速重新渲染,因此您在浪费计算时间来构建无法显示的帧。

requestAnimationFrame通过在每次浏览器重绘之前调用您的函数(可能是重绘函数)来帮助解决这个问题。这可确保您只在实际显示重绘时执行重绘。这样可以获得更好的性能;它保证不会不必要地执行重绘计算。如果那些重绘计算在计算上是昂贵的,那么它尤其有用。

有用的文档:requestAnimationFrame