浏览器中消息队列的优先级

消息队列的优先级

消息队列是渲染主线程的重要组成部分
浏览器中消息队列中的任务没有优先级,FIFO
但是消息队列有优先级(priority)
根据W3C官方文档,

  • 每个任务都有任务类型,同类型的任务必须在同一个队列,不同类型的任务可以分属于不同队列
  • 在一次事件循环中,浏览器可以根据情况从不同的队列中取出任务执行
  • 浏览器必须准备好一个微队列,微队列中的任务优先于其他所有队列的任务执行

队列类型(优先级)
定时器
网络队列
交互队列


在目前 chrome 的实现中,至少包含了下面队列:

  1. 延时队列:存放计时线程计时结束后,由回调函数包装成的任务,优先级:
  2. 交互队列:存放用户操作后产生的事件处理函数,优先级:
  3. 微队列:存放需要最快执行的任务,优先级:最高

html5文档

大致意思就是:如果微队列不为空的话,将最先进入微队列的任务作为结果从队列中取出来,执行

微队列

向微队列中添加任务

  1. Promise的回调函数(then、catch、finally)
  2. MutationObserver
  3. queueMicrotask
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值