美文网首页前端
什么是前端宏任务,什么又是前端微任务呢?

什么是前端宏任务,什么又是前端微任务呢?

作者: 清酒08 | 来源:发表于2023-05-17 22:29 被阅读0次

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

可以分为三类:

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

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

宏任务有以下几个特点:

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

微任务由以下几个特点:

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

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

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

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

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

相关文章

  • 高级前端面试题

    1.什么是闭包,闭包的作用2.宏任务微任务3.微前端(阿里乾坤框架)4.call,apply.bind5.23种设...

  • 微任务/宏任务 实例详解

    什么是宏任务 macroTask,什么是微任务microTask? 宏任务:setTimeout、setInter...

  • 写写前端 JS 的 宏任务,微任务,

    START 番茄我又又又来写点啥啦。 今天朋友去找工作,面试之后把面试题给我看了一下,叫我做做看。当我做到有关js...

  • js中的异步任务:宏任务、微任务

    js的异步任务分2类:宏任务(macrotask )和微任务(microtask ) 什么是宏任务、微任务 网上用...

  • node学习笔记(四十二)

    一、前端EventLoop 1、什么是eventLoop? 同步任务和异步任务在js中是如何执行的呢?js的代码运...

  • 前端宏任务、微任务、Dom 渲染的顺序

    1.浏览器包含多个进程 1.主进程协调控制其他子进程(创建、销毁) 2.第三方插件进程每种类型的插件对应一个进程,...

  • 前端面试题

    @1: 微任务和宏任务 什么是宏任务、微任务 先来了通俗易懂的例子:去银行办理业务的人就是一个个宏任务,当宏任务P...

  • 宏任务与微任务

    宏任务与微任务相关知识点属于前端基础,掌握它对于项目优化和解决遇到的问题很有帮助,将我学习到的mark在此,以备忘...

  • 宏任务、微任务

  • 宏任务 微任务

    宏任务 1.事件绑定 2.定时器 3.ajax/跨域中的异步(http请求异步) 微任务 1.Promise不是n...

网友评论

    本文标题:什么是前端宏任务,什么又是前端微任务呢?

    本文链接:https://www.haomeiwen.com/subject/xpqwsdtx.html