requestAnimationFrame(rAF)是浏览器原生、与屏幕刷新率自动同步的动画API,具备自动节能、批量处理、高精度时间戳和精准启停等优势,显著提升动画性能与能效。

requestAnimationFrame(常简写为 rAF)是浏览器原生提供的、专为动画设计的 API。它不是“自己控制时间”,而是把动画任务交给浏览器,由浏览器在下一次屏幕刷新前自动调用你的回调函数——也就是说,它天然和屏幕刷新节奏保持一致。
rAF 的执行频率不是固定 16.67ms,而是紧贴设备实际刷新率:60Hz 屏幕约每 16.7ms 一次,90Hz 屏幕约 11.1ms,120Hz 屏幕约 8.3ms。浏览器会动态适配,无需手动计算或切换逻辑。
当用户切走标签页、最小化窗口或锁屏时,rAF 会立刻停止触发回调。这不只是省电,更避免了无意义的 JS 执行、DOM 操作和样式计算。
同一帧内多个 rAF 回调会集中执行;配合“先读后写”原则(比如先 getBoundingClientRect,再改 style),浏览器可合并重排重绘,减少渲染开销。
立即学习“Java免费学习笔记(深入)”;
回调函数接收一个 DOMHighResTimeStamp 参数(单位毫秒,精度达微秒级),从页面加载开始计时。你可以据此计算真实经过时间,实现稳定速度的动画,不受帧率波动影响。
基本上就这些。它不复杂,但容易忽略——尤其在用 setTimeout 做滚动动画、Canvas 渲染或自定义过渡时,换上 rAF 往往就是最直接有效的性能提升点。
以上就是JavaScript中什么是动画_requestAnimationFrame优势的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号