什么是前端宏任务,什么又是前端微任务呢?一文读懂前端微任务宏任务。

您所在的位置:网站首页 cf宏会被检测吗 什么是前端宏任务,什么又是前端微任务呢?一文读懂前端微任务宏任务。

什么是前端宏任务,什么又是前端微任务呢?一文读懂前端微任务宏任务。

2023-06-04 05:36| 来源: 网络整理| 查看: 265

在前端中,宏任务和微任务是异步任务的两种不同类型。 前端有很多中异步任务类型。

可以分为三类:

宏任务 定时器任务用户交互事件任务(鼠标事件、键盘事件)网络请求任务I/O操作任务(读写文件) 微任务 Promise的回调函数MutationObserver的回调函数(用于监听 DOM 的变动,并在变动发生时执行相应的微任务。) 特殊任务 requestAnimationFrame 用于在下一次浏览器重绘之前执行的任务。它通常用于实现流畅的动画效果。(一般将它认定为宏任务,少数资料将其归类为微任务)setImmediate 在 Node.js 环境中提供的宏任务,用于在当前事件循环的末尾立即执行任务。延迟执行的脚本()在文档解析完成后,按照它们在文档中的顺序延迟执行的脚本。

在一般情况下可以吧异步任务分为这三种,但是在不同环境中也会有不同的判定差异。

宏任务有以下几个特点:

宏任务是由浏览器提给你的异步任务宏任务是会放入宏任务队列中,按照一定的顺序去执行。当任务队列为空后,事件循环机制会从宏任务队列中取出一个宏任务执行。宏任务的执行是以完整的、不可中断的方式进行的,执行期间不会执行其他任务。

微任务由以下几个特点:

微任务是相对于宏任务而言的。微任务会被放入微任务队列中,他的优先级高于宏任务。当宏任务执行完毕后,事件循环机制会检查微任务队列,并按照顺序执行其中的微任务。微任务的执行是连续的,知道任务队列清空才会继续执行下一个宏任务。

需要注意的是,微任务具有高优先级,并且可以在同一宏任务中添加多个微任务,它们会在当前宏任务执行完毕后立即执行。而宏任务的执行时机是在当前宏任务执行完毕后,从宏任务队列中取出下一个宏任务执行。

也就是说可以理解为一个宏任务包含了多个微任务。

在一个宏任务中,可能会产生多个微任务。这些微任务会被按照顺序添加到微任务队列中,等待宏任务执行完毕后依次执行。

一旦宏任务执行完成,事件循环会立即检查微任务队列,并按照添加的顺序执行其中的微任务,直到微任务队列为空。然后才会进入下一个宏任务的执行。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3