美文网首页
浏览器的事件机制-Eventloop

浏览器的事件机制-Eventloop

作者: Doter | 来源:发表于2020-03-26 22:41 被阅读0次

循环机制前,我们先要会区分:宏任务与微任务

宏任务Task与微任务Microtask

JS中的宏任务和微任务的区别和用法
宏任务Task与微任务Microtask都是异步任务。

宏任务一般是:包括<script>,setTimeout,setInterval、I/O、UI render, event事件的callback。
微任务主要是:Promise、Object.observe、MutationObserver。

关于宏任务与微任务Microtask的如何调度

建议直接参考该文章:
动图学 JavaScript 之:事件循环
简单描述就是:
首先有宏任务队列Tasks和空的微任务队列Microtasks

  1. 开始执行Tasks中的第一个宏任务
  2. 当某个task宏任务在执行过程中除了正常逻辑代码及调用栈,如果遇到宏任务则添加到Tasks,遇到微任务则添加到Microtasks.直到该任务结束。
  3. 接下来执行依次执行Microtasks中的微任务(即上面的宏任务产生了Microtasks),逻辑与执行宏任务一样。最终执行完该微任务队列后。
  4. 接着执行下一个task宏任务

ok,就是这么简单。


image.png

推荐阅读下方参考文章中英文原文,然后自己找到代码试例,查看其执行流程
参考文章:
Tasks, microtasks, queues and schedules(译文)
Tasks, microtasks, queues and schedules(原文)

相关文章

  • 02 浏览器和Node中eventloop的区别(js执行机制)

    浏览器和Node中eventloop的区别(js执行机制) 一、浏览器端的eventloop 1)1个函数执行栈,...

  • 浏览器的事件机制-Eventloop

    循环机制前,我们先要会区分:宏任务与微任务 宏任务Task与微任务Microtask JS中的宏任务和微任务的区别...

  • EventLoop 事件循环机制

    什么是EventLoop? 浏览器协调用户操作、渲染、网络请求,硬件控制等事件源执行顺序的机制. 外部队列(Tas...

  • 面试题总结(一)

    1、什么是 EventLoop EventLoop是一种事件循环机制,可以用来解决javascript单线程运行不...

  • 异步操作和事件循环机制(Event Loop)续一

    上一次文章 异步操作和事件循环机制(Event Loop)中我们提到了 EventLoop ,而事件循环机制在 N...

  • js相关

    eventloop 主线程从任务队列中读取事件,这个过程是循环不断的,这种机制就是eventloop 宏队列也叫t...

  • 事件循环EventLoop机制

    1. 宏任务与微任务 依据我们多年编写 ajax 的经验:js 应该是按照语句先后顺序执行,在出现异步时,则发起异...

  • JS事件循环机制 eventloop

    如何理解JS事件的循环机制(浏览器端)答: 我们知道JS是单线程运行的(暂时撇去web worker)、是异步的、...

  • 关于事件循环

    首先,js 是单线程的语言,eventloop是js的执行机制,在不同的运行环境(浏览器或Nodejs)下,执行顺...

  • --

    react事件机制 react基于浏览器原生事件机制,封装了一套自己的事件机制,包括事件注册、事件合成、冒泡和捕获...

网友评论

      本文标题:浏览器的事件机制-Eventloop

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