本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
JavaScript 事件循环机制,很重要!
liujianhua · 141浏览 · 发布于2023-03-23 +关注

JavaScript 事件循环机制

原文链接:note.noxussj.top/?sou...

事件循环机制

在事件循环中,每进行一次循环操作称为 tick,每一次 tick 的任务处理是比较复杂的。

关键步骤如下:

  1. 执行一个宏任务

  1. 执行过程中如果遇到微任务,就将它添加到微任务的任务队列中

  1. 宏任务执行完毕后,立即执行当前微任务队列中的所有微任务(依次执行)

  1. 当前宏任务执行完毕,开始检查渲染,然后 GUI 线程接管渲染

  1. 渲染完毕后,JS 线程继续接管(开始下一个宏任务)

流程图如下:

image.png

那什么是宏任务、微任务呢?


宏任务

宏任务(macro task)可以理解为调用栈中的任务就是宏任务。

浏览器为了能够使得 JavaScrpit 内部 macro task 与 DOM 任务能够有序的执行,会在一个 macro task 执行结束后,在下一个 macro task 执行开始前,对页面进行重新渲染。

macro task 主要包含:script 整体代码、setTimeout、setInterval。


微任务

微任务(micro task)主要是存放一些异步任务,可以理解是在当前 macro task 执行结束后立即执行的任务。所以它的响应速度相比 setTimeout 会更快。

micro task 主要包含:Promise.then、await 方法后面的代码属于 .then( await 相当于一个 Promise )。


最全面的前端笔记来啦,包含了入门到入行的笔记,还支持实时效果预览。小伙伴们不需要再花时间去写笔记,或者是去网上找笔记了。面试高频提问和你想要的笔记都帮你写好了。支持移动端和 PC 端阅读,深色和浅色模式。




相关推荐

PHP实现部分字符隐藏

沙雕mars · 1325浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 908浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 970浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 962浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1086浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页