2017-02-09 133 views
0

据我所知,对于常见的显示器,刷新率为60/s,但在浏览器渲染过程中帧速率是多少?我已经检查了很多关于如何获得更好的动画性能的参考文献,您需要保持帧频与刷新率同步,并且使用requestAnimationFrame会更好。这是什么意思?谁在通过JavaScript执行的动画中产生框架?它是由JavaScript本身生成的吗?那么一个CSS转换呢?有人能详细解释这个吗?非常感谢。在requestAnimationFrame中,浏览器中刷新率和帧速率有什么区别?

回答

0

浏览器确定刷新窗口的速率。在JavaScript中刷新速度可能比此更高(例如,通过做setInterval(redraw, 10)每10ms重绘一次(100fps)),但高于浏览器的刷新速率是不重要的;浏览器不会很快地重新渲染,因此您正在浪费计算时间来构建不会显示的帧。

​​通过在每个浏览器重新绘制之前调用您的函数(大概是重绘函数)来帮助实现此目的。这确保您只有在实际显示时才执行重绘。这使得更好的性能;它保证重绘计算不会不必要地执行。如果这些重绘计算在计算上是昂贵的,则这是特别有利的。

帮助文档:requestAnimationFrame

+0

“requestAnimationFrame与这有助于通过调用你的函数 - 想必重绘功能 - 每一个浏览器重绘之前”请问你说的话每一个浏览器之前,这里的意思是““天天浏览器重绘之前”刷新显示“?因为我知道,在浏览器主线程中,执行线是js execution-> style computing-> relayout-> repaint。但我猜“刷新显示”的操作不在主线程中,而是在另一个线程中。 – johnwaynerui

+0

正确。浏览器的重绘操作与JS执行线程分开进行。长话短说:使用'requestAnimationFrame'。 –