首页 > 解决方案 > requestAnimationFrame 是否会被长 javascript 卡住

问题描述

我知道requestAnimationFrame是在重新渲染浏览器之前被调用的,频率大约是60fps,但是如果requestAnimationFrame的回调中有很长的javascript,会不会阻塞浏览器的重新渲染呢?因此卡住了下一个requestAnimationFrame

再说一遍,如果没有内容或样式发生变化,为什么浏览器会以 60fps 的速度重新渲染?

标签: javascriptrequestanimationframe

解决方案


是的。

与任何基于事件的函数调用(requestAnimationFramesetTimeoutaddEventListener等)一样,如果 JS 引擎正忙于运行另一个函数(甚至是早期迭代中的相同函数),那么新函数在前一个函数完成之前无法运行。


推荐阅读