注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
编程开发
›
JavaScript
›
查看内容
返回列表
发新帖
记录在JavaScript中对事件循环的理解
看不惯带节奏的黑狗
看不惯带节奏的黑狗
当前离线
积分
39
13
主题
13
帖子
39
积分
新手上路
新手上路, 积分 39, 距离下一级还需 11 积分
新手上路, 积分 39, 距离下一级还需 11 积分
积分
39
发消息
显示全部楼层
JavaScript 事件循环通俗解释
好的,用更通俗的话来说,事件循环就像是在一个大剧院里,有一个演员(JavaScript引擎)和两个重要的角色:一个是前台的表演者(调用栈),另一个是后台的候场区(事件队列)。
前台表演者:
这个演员在前台表演,一次只能表演一个节目(单线程执行)。当一个节目(函数)开始时,演员就上台表演,表演结束,演员就下台(函数执行完毕,从调用栈中弹出)。
后台候场区:
有些节目需要准备,比如换衣服、化妆等,这些准备工作不会在台上直接做,而是在后台候场区进行。这就是事件队列,异步任务的回调函数(比如网络请求的结果)会先在这里排队等待。
剧院导演:
事件循环就是剧院的导演,它负责监督整个剧院的运作。导演会不断检查演员是否已经下台(调用栈是否为空),如果演员下台了,导演就会从候场区选一个节目放到前台去表演。
优先级:
导演在选节目时,会优先考虑那些需要立即处理的小节目(微任务,比如Promise的回调),然后再考虑那些大型的节目(宏任务,比如setTimeout)。
不堵塞:
因为演员不需要在后台等待准备工作完成,所以即使后台有很多准备工作要做,也不会影响到前台的表演,这就是非阻塞I/O。
剧院的效率:
虽然演员可以同时处理很多准备工作,但如果后台的准备工作太多,也会影响剧院的效率,所以合理地安排节目(管理异步任务)是很重要的。
不同剧院的导演:
不同的JavaScript环境(浏览器或Node.js)可能有不同的导演(事件循环的具体实现可能略有不同),但他们的基本工作方式是相似的。
所以,事件循环就是JavaScript世界中的导演,它确保了前台的表演(代码执行)和后台的准备工作(异步任务处理)能够有序、高效地进行。
来源:
https://www.cnblogs.com/zhstudyroom/p/18145712
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
上一篇:
1. 大文件上传如何断点续传
下一篇:
JavaScript本地存储的方式有哪些
发表于 2024-4-20 02:35:14
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表