乐闻世界logo
搜索文章和话题

Chrome 浏览器的事件循环机制是怎样的?

2月21日 17:03

Chrome 事件循环机制

Chrome 浏览器的事件循环机制是 JavaScript 异步编程的核心,理解它对于编写高性能的前端应用至关重要。

事件循环组成

  1. 调用栈

    • 存储函数调用
    • 遵循 LIFO(后进先出)原则
    • 同步代码在调用栈中执行
  2. 任务队列

    • 宏任务队列:setTimeout、setInterval、I/O、UI 渲染
    • 微任务队列:Promise.then、MutationObserver、queueMicrotask
  3. Web APIs

    • 浏览器提供的异步 API
    • DOM 操作、定时器、网络请求等

执行顺序

  1. 执行同步代码(调用栈)
  2. 调用栈为空时,检查微任务队列
  3. 执行所有微任务
  4. 执行一个宏任务
  5. 重复步骤 2-4

关键概念

  • 微任务优先级高于宏任务
  • 每次执行宏任务前都会清空微任务队列
  • UI 渲染在宏任务之间进行

实际应用

javascript
console.log('1'); setTimeout(() => { console.log('2'); Promise.resolve().then(() => console.log('3')); }, 0); Promise.resolve().then(() => console.log('4')); console.log('5'); // 输出顺序:1, 5, 4, 2, 3

性能优化

  • 避免长时间阻塞主线程
  • 合理使用微任务和宏任务
  • 利用 requestAnimationFrame 进行动画
  • 避免在微任务中进行大量计算
标签:Chrome