首页 > 其他分享 >说说 JS 的事件循环机制 ?

说说 JS 的事件循环机制 ?

时间:2022-09-03 15:56:06浏览次数:67  
标签:调用 dom 队列 JS 任务 循环 栈中 机制 执行

执行js代码时,遇到同步任务,直接推入调用栈执行,遇到异步任务,将该任务挂起,等到有返回结果后放到任务队列中;

当调用栈中的任务全部执行完成后,这时开始事件循环(Eventloop),不断的访问任务队列,将其中的任务推到调用栈中执行.

事件循环的大致过程:

  1. 清空调用栈中的同步代码
  2. 执行微任务队列中的微任务
  3. 渲染dom
  4. 触发事件循环,不断询问任务队列中是否有要执行的语句,有则调入调用栈中执行

 

异步任务又分为微任务和宏任务,微任务优先级高于宏任务,微任务在dom渲染前触发,宏任务在dom渲染后触发

宏任务:setTimeout,setInterval,Ajax

微任务:Promise,async/await

 

标签:调用,dom,队列,JS,任务,循环,栈中,机制,执行
From: https://www.cnblogs.com/qianduan-Wu/p/16652813.html

相关文章

  • 3.3 垃圾回收机制
    一引入解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应......
  • JS对后端响应的long类型数据处理精度丢失问题
    1、数据库的数据2、前端拿到的数据前端帮我们进行四舍五入了,这并不是我想要的3、解决办法把后端响应的数据long类型转成string类型,可以使用Stream流的方式或者for循......
  • shell脚本替换jar包中的fastjson版本
    fastjson版本总是出现漏洞,已经使用了较低fastjson版本,需要更新高版本fastjson,由于java应用比较多,逐个打包重新发布版本是不可能的,需要把jar包中的低版本fastjson替换成高版......
  • 以Docker Compose 建立Node.js 全端开发环境(四) — Todo List Api 串接
    以DockerCompose建立Node.js全端开发环境(四)—TodoListApi串接上个章节我们加入了Prisma作为与资料库沟通的中间层,这篇我们将使用它来协助我们开几只基础的Api......
  • 如何在 Windows 上安装 React.js |如何在 Windows 上安装 React JS |在 Windows 上安
    如何在Windows上安装React.js|如何在Windows上安装ReactJS|在Windows上安装ReactJS—Codexashish在这篇文章中,我们将看到如何在Windows中安装ReactJS......
  • Js 之swiper无缝滚动效果
    一、注意当设置speed太小时会有卡顿,建议设置为6000二、效果图三、代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>swiper4无......
  • luoguP4407 [JSOI2009] 电子字典 解题报告
    传送门题意对于多个字符串,查询其在字典树上的存在性或删除/插入/替换一个字符后存在的个数。思路存在性好说,直接在Trie树上做一遍查找即可。那剩下的三个操作怎么办......
  • 说说 JSON 格式的弊端与解决方法
    JSON格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统。但也有一些场合不适合使用JSON格式。1JSON格式弊端有这样的一个需求:希望把客户端的日志上传到服......
  • nginx njs 0.7.7发布
    最近nginxnjs模块发布了0.77版本了有一些新特性新特性nginx模块 njs对于http以及stream能力的扩展,js_import,js_path,js_set,js_var支持server以及location......
  • for循环的练习题1-2
    练习1:计算0到100之间的奇数和偶数的和  练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个  ......