首页 > 编程语言 >第 25 题:浏览器和 Node 事件循环的区别

第 25 题:浏览器和 Node 事件循环的区别

时间:2022-09-07 16:56:44浏览次数:106  
标签:Node 25 task 浏览器 回调 任务 执行

先上链接:

第一个链接里面大佬讲的已经非常透彻了我来总结一下。

浏览器

浏览器

关于微任务和宏任务在浏览器的执行顺序是这样的:

  • 执行一只task(宏任务)
  • 执行完micro-task队列 (微任务)

如此循环往复下去

浏览器的task(宏任务)执行顺序在 html#event-loops 里面有讲就不翻译了
常见的 task(宏任务) 比如:setTimeout、setInterval、script(整体代码)、 I/O 操作、UI 渲染等。
常见的 micro-task 比如: new Promise().then(回调)、MutationObserver(html5新特性) 等。

Node

Node的事件循环是libuv实现的,引用一张官网的图:

default

大体的task(宏任务)执行顺序是这样的:

  • timers定时器:本阶段执行已经安排的 setTimeout() 和 setInterval() 的回调函数。
  • pending callbacks待定回调:执行延迟到下一个循环迭代的 I/O 回调。
  • idle, prepare:仅系统内部使用。
  • poll 轮询:检索新的 I/O 事件;执行与 I/O 相关的回调(几乎所有情况下,除了关闭的回调函数,它们由计时器和 setImmediate() 排定的之外),其余情况 node 将在此处阻塞。
  • check 检测:setImmediate() 回调函数在这里执行。
  • close callbacks 关闭的回调函数:一些准备关闭的回调函数,如:socket.on('close', ...)。

微任务和宏任务在Node的执行顺序

Node 10以前:

  • 执行完一个阶段的所有任务
  • 执行完nextTick队列里面的内容
  • 然后执行完微任务队列的内容

Node 11以后:
和浏览器的行为统一了,都是每执行一个宏任务就执行完微任务队列。

标签:Node,25,task,浏览器,回调,任务,执行
From: https://www.cnblogs.com/zhanghaian/p/16666406.html

相关文章

  • 浏览器缓存机制介绍与缓存策略剖析
    缓存可以减少网络IO消耗,提高访问速度。浏览器缓存是一种操作简单、效果显著的前端性能优化手段。对于这个操作的必要性,Chrome官方给出的解释似乎更有说服力一些:很多时......
  • uni-app 区分当前处于浏览器是微信浏览器还是普通浏览器
    //#ifdefH5varua=window.navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i)=='micromessenger'){console.log("这是微信浏览器")}e......
  • 浏览器增加token
    浏览器打开控制台复制一下代码运行functionsetCookie(cookie_str){varstr_list=cookie_str.split(";");for(varkeyofstr_list){document.cookie=key;}}setCooki......
  • DAY 252 Python定时任务
    在日常工作中,我们常常会用到需要周期性执行的任务,一种方式是采用Linux系统自带的crond结合命令行实现。另外一种方式是直接使用Python。接下来整理的是常见的Python定......
  • 说一下浏览器垃圾回收机制?
    浏览器根据数据的存储方式分为栈垃圾回收和堆垃圾回收栈垃圾回收:当一个函数执行完毕后,其ESP(记录当前函数状态的指针)会下移指向下一个函数,这个下移操作即视为对上一......
  • Heroku 不再免费了,我还能如何部署我的 React/Node 应用程序? :(
    Heroku不再免费了,我还能如何部署我的React/Node应用程序?......
  • Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器
    Java监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器目录需求背景:一:了解音视频流协议:二:方案一rtsp转rtmp1、下载nginx+nginx-rtmp-module2、nginx配置文件3、......
  • PAT Advanced 1032 Sharing(25)
    题目描述:TostoreEnglishwords,onemethodistouselinkedlistsandstoreawordletterbyletter.Tosavesomespace,wemayletthewordssharethesames......
  • 2022-9-6 #25 None
    这是否也算一种闲话。受到音游的影响,最近一个月都没咋做题,也没更博。我的评价是......
  • CF1325F Ehab's Last Theorem
    传送门思路dfs树的一道出色的应用题令\(k=\lceil\sqrtn\rceil\)我们先按照遍历的顺序构建出dfs树对于一条返祖边\((u,v)\),如果有\(dep_u-dep_v+1\gek\),......