requestIdleCallback 和 requestAnimationFrame 有什么区别,分别适合处理哪些任务?
简答题中等849 次浏览
参考答案与解析
# 核心结论
requestAnimationFrame 用于把回调安排到浏览器下一次绘制之前,核心目标是让视觉更新与刷新节奏协调,适合动画、拖拽、滚动跟随和需要合并的界面更新。requestIdleCallback 用于在主线程暂时没有更高优先级工作时执行可延迟任务,适合缓存预热、分批索引、非关键数据整理等后台工作。前者关注当前画面能否流畅呈现,后者关注能否利用帧间剩余预算;二者都不是保证固定时间执行的普通定时器。
# 底层机制
浏览器一帧中可能依次处理输入、脚本、样式计算、布局、绘制和合成。requestAnimationFrame 的回调通常在下一次绘制前执行,并收到一个高精度时间戳。同一帧注册的多个
