JavaScript高级——事件循环模型

1、

2、所有代码分类

① 初始化执行代码(同步代码):包含绑定 dom 事件监听,设置定时器,发送 ajax 请求的代码

② 回调执行代码(异步代码):处理回调逻辑

3、js 引擎执行代码的基本流程:

初始化代码 ==> 回调代码

4、模型的2个重要组成部分:

① 事件(定时器/DOM事件/Ajax)管理模块

② 回调队列

5、模型的运转流程

① 执行初始化代码,将事件回调函数交给对应模块管理

② 当事件发生时,管理模块会将回调函数及其数据添加到回调列队中

③ 只有当初始化代码执行完后(可能需要一定时间),才会遍历读取回调队列中的回调函数执行

6、相关重要概念

① 执行栈(execution stack):所有的代码都是在此空间执行的

② 浏览器内核(browser core):js 引擎模块(在主线程处理)、其他模块(在主/分线程处理)

③ 任务队列(task queue)

④ 消息队列(message queue)

⑤ 事件队列(event queue)

⑥ 事件轮询(event loop):从任务队列中循环取出回调函数放入执行栈中处理(一个接一个)

⑦ 事件驱动模型(event-driven interaction model)

⑧ 请求响应模型(request-response model)

本文分享到这里,欢迎大家评论区共同讨论学习,下一篇继续分享JavaScript高级学习中的H5 Web Workers 多线程的内容。

上一篇:java中的ArrayList和LinkedList的底层剖析


下一篇:鸿蒙操作系统(HarmonyOS)生态与机遇