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

企业网站建设合同书模板企业网站建立要做的准备

企业网站建设合同书模板,企业网站建立要做的准备,阿里云域名注册官网入口,加盟投资好项目在前端开发中,**宏任务(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://www.dtcms.com/a/429975.html

相关文章:

  • 免费找客户网站爱站在线关键词挖掘
  • 好的网站建设专业公司nginx wordpress.conf
  • 岳阳建网站帮别人做网站的公司是外包吗
  • 建设一个网站的工作方案做网站之前要安装什么
  • 英文旅游网站建设三种常见的网络营销方式
  • 建设工程质量+协会网站wordpress小说采集插件
  • 合肥专业做公司网站wordpress画廊怎么用
  • 品牌设计案例网站wordpress 国内不使用
  • 做分析图网站wordpress 企业站 模板
  • 利川做网站网站建设资源kindle
  • 福州php做网站网站自己做服务器划算吗
  • 智云鸟网站建设网站开发毕设答辩
  • 平度网站建设ld4嘉鱼网站建设前十
  • 坛墨网站建设个人网站如何建立
  • 成都解放号网站建设河南省建设监理协会网站证书查询
  • 上海网站建设高端定制网络服务公司阿里巴巴网站建设教程视频
  • 大型网站建设技巧如何下载和安装wordpress
  • 江门网站推广优化龙岩网红桥
  • 一套网站源码多少钱网站正能量免费下载
  • 怎样建造网站模特公司网站源码
  • 淘宝网站开发店铺什么类别深圳效果图制作公司
  • 网站备案全国合作拍照点 腾讯云网站开发过程中遇到的问题
  • 网站上的图片怎么替换怎样从网上注册公司
  • 网站霸屏对网站好吗做网站推广的销售发的朋友圈
  • asp网站301余姚做百度网站
  • 网站模板漏洞wordpress无刷新分页
  • 网站页面设计欣赏申请网站空间
  • 长页在线制作网站宿州网站制作
  • 公司网站建设审批流程seo网络推广是什么意思
  • 合肥长丰路网站建设网站建设响应式是什么