为了提高浏览器的性能和用户体验,现代浏览器采用了一些技术来优化主线程的执行。本文将提供浏览器因JS耗时任务导致页面卡顿的部分解决方案。主要着重讲解requestIdleCallback(RIC)和requestAnimationFrame(RAF)。

  • setTimeout 延迟加载 (使用不当可能适得其反)
  • web worker 多线程 (不能操作dom,主要计算密集型的任务)
  • requestIdleCallback 帧空闲时运行 (react18带