模型原理图
相关重要概念
1. 执行栈
execution stack
所有的代码都是在此空间中执行的
2. 浏览器内核
browser core
js引擎模块(在主线程处理)
其它模块(在主/分线程处理)
3. 任务队列
task queue
4. 消息队列
message queue
5. 事件队列
event queue
6. 事件轮询
event loop
从任务队列中循环取出回调函数放入执行栈中处理(一个接一个)
7. 事件驱动模型
event-driven interaction model
8. 请求响应模型
request-response model
模型的运转流程
* 执行初始化代码, 将事件回调函数交给对应模块管理
* 当事件发生时, 管理模块会将回调函数及其数据添加到回调列队中
* 只有当初始化代码执行完后(可能要一定时间), 才会遍历读取回调队列中的回调函数执行