不懂就问系列 requestAnimationFrame 中存在耗时任务

requestAnimationFrame 是每帧必执行的吗
requestAnimationFrame 中如果放一些耗时任务会掉帧吗

阅读 3.3k
2 个回答

requestAnimationFrame传入的回调函数在页面重绘之前调用,个人感觉应该符合你所说的每帧必执行;
在回调函数中处理耗时任务,应该作为性能优化去处理,掉帧什么的无可厚非

刚才尝试了一下, 先说结果不会掉帧,但是会降频

没有耗时任务的情况下,接近60,可能是我每一帧都在获取dom导致的,不过影响不大
image.png

这个是有耗时任务的情况,你会发现页面刷新频率从60降到了15左右 时间用了4倍
image.png

也就是说requestAnimationFrame中使用耗时的任务,会让页面刷新频率下降,还是小心使用比较好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题