javascript - requestAnimationFrame 是否会被长 javascript 卡住
问题描述
我知道requestAnimationFrame是在重新渲染浏览器之前被调用的,频率大约是60fps,但是如果requestAnimationFrame的回调中有很长的javascript,会不会阻塞浏览器的重新渲染呢?因此卡住了下一个requestAnimationFrame?
再说一遍,如果没有内容或样式发生变化,为什么浏览器会以 60fps 的速度重新渲染?
解决方案
是的。
与任何基于事件的函数调用(requestAnimationFrame
、setTimeout
、addEventListener
等)一样,如果 JS 引擎正忙于运行另一个函数(甚至是早期迭代中的相同函数),那么新函数在前一个函数完成之前无法运行。
推荐阅读
- slack-api - SlackAPI - 包括对话框输入和原始消息
- google-cloud-platform - 我应该为 Tiktok 克隆应用程序使用 Google Cloud Storage 还是 Unlimited Google Drive
- python - 构造一个正则表达式以匹配来自文件路径的文件名
- javascript - 如何在 Jest 中检查返回值
- ssh - 我想在ubuntu19上安装ssh,但是出现了一些错误,sshd_config 找不到,我该如何解决这些问题,谢谢
- angular - 从 RxJs 可观察调用向 Map 值(键,值)对象添加附加值
- css - 怎么去掉上面的空格
- 在 Outlook 中标记?
- java - 将 Java 语言集成到 Visual Studio 2017
- java - 如何合并 Akka 子流
- java - 如何创建一个可拖动的 JLabel 捕捉到面板上的某些边界