当前位置: 首页 > wzjs >正文

兰州市住房和城乡建设局网站品牌建设公司排名

兰州市住房和城乡建设局网站,品牌建设公司排名,最新的新开传奇网站,微商软文范例大全100在前端开发中,**宏任务(Macro Task)**和**微任务(Micro Task)**是 JavaScript 事件循环(Event Loop)中的两个重要概念。它们决定了异步代码的执行顺序。 --- ### 1. **事件循环(Ev…

在前端开发中,**宏任务(Macro Task)**和**微任务(Micro Task)**是 JavaScript 事件循环(Event Loop)中的两个重要概念。它们决定了异步代码的执行顺序。

---

### 1. **事件循环(Event Loop)**
JavaScript 是单线程的,通过事件循环机制处理异步任务。事件循环的核心是:
- **主线程**:执行同步代码。
- **任务队列**:存放异步任务的回调函数。
- **事件循环**:不断检查任务队列,将任务推入主线程执行。

任务队列分为两种:
- **宏任务队列**:存放宏任务。
- **微任务队列**:存放微任务。

---

### 2. **宏任务(Macro Task)**
宏任务是指需要较长时间执行的任务,通常包括:
- `setTimeout` 和 `setInterval` 的回调。
- `setImmediate`(Node.js 特有)。
- `requestAnimationFrame`(浏览器特有)。
- I/O 操作(如文件读写、网络请求)。
- UI 渲染(浏览器特有)。

**执行时机**:每次事件循环中,主线程会执行一个宏任务,然后检查微任务队列。

---

### 3. **微任务(Micro Task)**
微任务是指需要尽快执行的任务,通常包括:
- `Promise` 的回调(`then`、`catch`、`finally`)。
- `MutationObserver`(监听 DOM 变化)。
- `process.nextTick`(Node.js 特有)。

**执行时机**:每次宏任务执行完毕后,事件循环会清空微任务队列中的所有任务,然后再执行下一个宏任务。

---

### 4. **执行顺序**
事件循环的执行顺序如下:
1. 执行主线程的同步代码。
2. 执行当前宏任务。
3. 清空微任务队列中的所有任务。
4. 执行 UI 渲染(浏览器)。
5. 执行下一个宏任务。

---

### 5. **代码示例**
```javascript
console.log('1. 同步代码'); // 同步代码,立即执行

setTimeout(() => {
  console.log('4. 宏任务 - setTimeout'); // 宏任务
}, 0);

Promise.resolve().then(() => {
  console.log('3. 微任务 - Promise'); // 微任务
});

console.log('2. 同步代码'); // 同步代码,立即执行
```

**输出结果**:
```
1. 同步代码
2. 同步代码
3. 微任务 - Promise
4. 宏任务 - setTimeout
```

**解释**:
1. 同步代码立即执行。
2. `Promise` 的微任务在同步代码之后、宏任务之前执行。
3. `setTimeout` 的宏任务在微任务之后执行。

---

### 6. **宏任务和微任务的区别**
| 特性            | 宏任务(Macro Task)               | 微任务(Micro Task)               |
|-----------------|------------------------------------|------------------------------------|
| **执行时机**     | 每次事件循环执行一个宏任务         | 每次宏任务执行后清空微任务队列     |
| **常见任务**     | `setTimeout`、`setInterval`、I/O   | `Promise`、`MutationObserver`      |
| **优先级**       | 较低                               | 较高                               |
| **队列类型**     | 宏任务队列                         | 微任务队列                         |

---

### 7. **实际应用**
- **优化性能**:将高优先级任务放入微任务队列,确保尽快执行。
- **避免阻塞**:将耗时任务放入宏任务队列,避免阻塞主线程。
- **控制执行顺序**:通过微任务和宏任务的特性,控制异步代码的执行顺序。

---

### 总结
- **宏任务**:需要较长时间执行的任务,如 `setTimeout`、I/O 操作。
- **微任务**:需要尽快执行的任务,如 `Promise`、`MutationObserver`。
- **执行顺序**:同步代码 → 微任务 → 宏任务 → UI 渲染 → 下一个宏任务。

理解宏任务和微任务的机制,有助于更好地掌握 JavaScript 的异步编程和事件循环。


文章转载自:

http://4x2MRX0Q.mtymb.cn
http://BbhDoK72.mtymb.cn
http://TXxYuO8q.mtymb.cn
http://AfEv81Mu.mtymb.cn
http://7rY4prWx.mtymb.cn
http://SIVWr8Fb.mtymb.cn
http://snHgyXST.mtymb.cn
http://WIYIIBj8.mtymb.cn
http://czzmtGl5.mtymb.cn
http://jjXg1ROq.mtymb.cn
http://IGozz0OP.mtymb.cn
http://JNCjOlUK.mtymb.cn
http://1oRjU7qt.mtymb.cn
http://0RsankSh.mtymb.cn
http://LIOK2tTL.mtymb.cn
http://Rmu5B1gQ.mtymb.cn
http://ELN02qDG.mtymb.cn
http://StZp3IwU.mtymb.cn
http://2iCbtUll.mtymb.cn
http://z8iAjvw5.mtymb.cn
http://FVbxJdG7.mtymb.cn
http://DoS74b8G.mtymb.cn
http://ccZmtHBW.mtymb.cn
http://gy0NmMkn.mtymb.cn
http://Dcxt1tq6.mtymb.cn
http://W3SR0gBP.mtymb.cn
http://sbtNsBQx.mtymb.cn
http://4uph7kjg.mtymb.cn
http://BflIcNiU.mtymb.cn
http://sEdVTXnH.mtymb.cn
http://www.dtcms.com/wzjs/655595.html

相关文章:

  • 网站 网站建设定制做网站交易平台挣钱吗
  • php做网站项目的思路0797 网站制作
  • 邯郸网站开发定制装修设计图免费软件
  • 营销网站制作全包网站建设价格标准新闻
  • 如何删除自己建的网站网站页面关键字在哪里
  • 贵州省住房和城乡建设网站朝阳市网站制作
  • wordpress建站创业wordpress admin改密码忘记
  • 影楼网站怎么做服饰的网站建设
  • 石家庄市交建高速公路建设管理有限公司网站企业网站建设目的意义
  • 汽车设计网站wordpress 换语言包
  • 做网站云服务器装系统深圳市公司网站建设平台
  • 晋中城市建设招标网站购物网站建设实训心得体会
  • 企业网站管理系统 才能湖南岚鸿网站做移动适配以后可以取消吗
  • 4a景区网站建设标准emlog怎么转换到WordPress
  • 做期货看什么网站的资讯做一个简单网页
  • 模具公司网站中品质见证怎么做打开百度网页
  • 用vs做的网站怎么打开吗金乡县住房与城乡建设局网站
  • 洛阳网站建设的公司网站宣传片的创意
  • 做网站的荣誉证书一般使用的分辨率的显示密度
  • 学做电商网站西双版纳网站建设开发公司
  • 网站推广都做什么内容烟台开发区人才网招聘信息
  • 网站创建想法平台搭建是什么
  • 网站建设微信版做公益网站需要哪些部门认证
  • 商务网站开发步骤推广策略
  • 长沙网站推广公司wordpress演示数据导入
  • 电路板东莞网站建设怎么在网站投放广告
  • 互联网app开发网站建设优化论坛
  • 北京网站排名优化软件年轻人不要做网络销售
  • 做自媒体那几个网站好点福州网上店铺搭建公司
  • 网站不会更新文章90设计网站官网入口