首页 > 其他分享 >什么是Event Loop?

什么是Event Loop?

时间:2024-02-19 20:00:28浏览次数:23  
标签:异步 浏览器 什么 任务 执行 Event Loop

什么是Event Loop?

  • js是单线程,意味着只有一个调用栈,同一时刻只能做一件事情
  • 什么是阻塞?
    • 就是一些执行很慢的代码,比如等待网络请求,这些东西相较于cpu来说是非常慢的
  • 就是说它不仅有执行栈,还有任务队列(存放宏任务和微任务)
  • Event Loop要做的事情就是检查执行栈和任务队列,当栈空,就将任务队列的对头压入执行栈中,这样循环往复,就叫事件轮询
  • 单次循环中,最多处理一个宏任务,而所有的微任务都会被处理
  • 微任务会在重绘之前完成
  • 只有调用栈被清空的时候,浏览器才会进行重绘
  • 其实异步任务,就是浏览器帮你干了,只有等到v8中的执行栈空了之后,才把异步任务里面的回调放进去执行
  • 为什么需要异步?
    • 因为代码阻塞的话,浏览器也不能重新渲染,会变得非常卡
  • 事件的回调是宏任务

相关链接:

https://www.bilibili.com/video/BV1oV411k7XY/?share_source=copy_web&vd_source=6bac919d0e003af4419677ae239707bf

标签:异步,浏览器,什么,任务,执行,Event,Loop
From: https://www.cnblogs.com/zhumenglong/p/18021844

相关文章

  • 01 基本框架:一个键值数据库包含什么
    01基本框架:一个键值数据库包含什么前言:对蒋德钧老师的《Redis核心技术与实战》课程的学习记录。构造简单的键值数据库SimpleKV考虑里面可以存什么样的数据,对数据可以做什么样的操作,也就是数据模型和操作接口。对于键值数据库而言,基本的数据模型是key-value模型。Redis......
  • 【译】 你不是唯一感到AI疲劳的人(或者说:为什么那个新的AI工具不适合你)
    原作:pycoach引言:越多的AI工具,越多的AI疲劳 使用Midjourney制作的图像 ChatGPT时代有前后之分。在OpenAI推出ChatGPT之前,只有少数程序员会涉足创建聊天机器人和用于本地执行的简单模型,也只有机器学习工程师和少数人工智能爱好者会每天使用“人工智能”这个词。202......
  • 记录--vue3的宏到底是什么东西?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言从vue3开始vue引入了宏,比如defineProps、defineEmits等。我们每天写vue代码时都会使用到这些宏,但是你有没有思考过vue中的宏到底是什么?为什么这些宏不需要手动从vue中import?为什么只能在setup顶层中使用这些宏......
  • vue3的宏到底是什么东西?
    前言从vue3开始vue引入了宏,比如defineProps、defineEmits等。我们每天写vue代码时都会使用到这些宏,但是你有没有思考过vue中的宏到底是什么?为什么这些宏不需要手动从vue中import?为什么只能在setup顶层中使用这些宏?vue文件如何渲染到浏览器上要回答上面的问题,我们先来了解一下......
  • 对于程序员来说CPU是什么
    通过第一章的学习,我了解到的CPU是计算机的核心组件,它是计算机执行计算和逻辑运算的部分,负责解释和执行指令,控制计算机的各个部分协同工作。CPU按照程序的指令执行相应的操作。CPU是寄存器的集合体(在代码清单中,exa和ebp表示的都是寄存器)。CPU的控制器就会参照程序计数器的数值,从内......
  • Java中==和equals有什么区别
    原文网址:​​Java中==和equals有什么区别_IT利刃出鞘的博客-CSDN博客​​简介本文介绍java中==和equals的区别。分享Java技术星球(自学精灵),有面试真题和架构技术等:​​https://learn.skyofit.com/​​区别区别是:一个是运算符,一个是方法。==比较变量的值是否相同。如果比较......
  • 在script标签写export为什么会抛错|type module import ES5 ES6 预处理 指令序言 JavaS
    今天我们进入到语法部分的学习。在讲解具体的语法结构之前,这一堂课我首先要给你介绍一下JavaScript语法的一些基本规则。脚本和模块首先,JavaScript有两种源文件,一种叫做脚本,一种叫做模块。这个区分是在ES6引入了模块机制开始的,在ES5和之前的版本中,就只有一种源文件类型(就......
  • 人教版和北教版有什么区别?
    人教版和北教版有什么区别?2021-09-22 · 知道合伙人旅游行家关注 北京版和人教版的区别:1、课本里面的目录与内容都不一样,但学习的知识点是一样的。2、主要就是知识点按排的顺序与逻辑性不一样。3、初中教学难度不一样,例题和课后习题难度也不一样。4、人教版的标题......
  • 在k8S中,Fluentd的工作原理是什么?
    在Kubernetes(k8s)中,Fluentd作为日志收集器和转发器,其工作原理主要包括以下几个关键步骤:数据收集:Fluentd在Kubernetes集群中通常以DaemonSet形式部署,确保每个Node节点上都有一个Fluentd实例运行。Fluentd使用输入插件(InputPlugins)从各个容器的日志源获取数据......
  • 为什么在js中需要添加addEventListener()?
    为什么在js中需要添加addEventListener()?1.What?addEventListener(监听器)---EventTarget.addEventListener()方法将指定的监听器注册到EventTarget上,当该对象触发指定的事件时,指定的回调函数就会被执行。事件目标可以是一个文档上的元素Element、Document和Window,也可以是......