前端中的宏任务和微任务

什么是宏任务和微任务

宏任务和微任务是在事件循环中执行的两种不同类型的任务。

宏任务是相对较大的任务,通常包括定时器任务(setTimeout、setInterval)、网络请求、用户交互事件(点击、滚动等)。宏任务会被添加到事件队列中,在每个事件循环中执行一次。

微任务是相对较小的任务,通常包括Promise回调、DOM变动观察器。微任务会在当前宏任务执行完毕后立即执行,而不会添加到事件队列中。微任务的执行时机是在当前宏任务的末尾,在下一个宏任务之前。

因此,微任务比宏任务具有更高的优先级,可以在用户交互之前或渲染之前得到及时处理,可以用于执行一些需要优先处理的任务,如更新DOM、处理异步操作的结果等。

总结起来,宏任务是事件循环中的较大任务,微任务是较小的任务,他们的执行顺序不同,微任务比宏任务的优先级更高。

宏任务有哪些

宏任务包括但不限于以下几种常见的任务:

1、定时器任务: 如setTimeout、setInterval

2、I/O任务:例如网络请求、文件读写等需要进行I/O操作的任务

3、用户交互任务:例如点击事件、输入事件等与用户交互的相关任务

4、渲染任务:当浏览器需要重绘或重新布局时触发的任务

5、请求动画帧任务:通过requestAnimationFrame()方法设置的任务,用于在每一帧进行绘画或动画操作

这些任务都是比较耗时的操作,在事件循环中被视为宏任务,需要等待一定时间或特定的触发条件才会执行

微任务有哪些

1、Promise回调:Promise对象的resolve或reject方法的回调函数

2、MutationObserver回调:当DOM发生变化时触发的回调函数

3、Promise的then()回调:Promise对象的then()方法中的回调函数

4、async/await函数中的后续操作:在async函数中使用await等待的操作完成后,紧接着的代码块中的任务

这些任务通常是较小且轻量级的操作,执行时间较短,适合在当前宏任务执行完毕后立即执行。由于微任务的执行时机在每个宏任务执行的过程中,因此可以保证在用户交互之前或渲染之前得到及时处理

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值