news 2026/8/21 3:44:19

JS事件循环

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JS事件循环

单线程的 JavaScript

同步与异步

js本身是单线程的,为了处理异步任务,宿主环境(浏览器/v8)会将其交给其他线程处理,执行js的线程则会立即结束当前任务而去执行后续代码

事件循环

事件循环是宿主环境处理js异步操作的方式,让其能够非阻塞式运行的机制

浏览器事件循环

浏览器进程

主进程,无论打开多少个浏览器窗口,它仅有一个

它主要负责浏览器界面交互、用户管理和进程管理

网络进程

处理网站的数据请求和相应,网络进程内部会开启多个线程,以实现网络请求的异步话处理

渲染进程

主要是解析html、css和js等其他资源,并生成渲染树、执行布局、和绘制

浏览器中的 Event Loop

宏队列和微队列

宏队列排队宏任务(DOM操作回调, 定时器回调, UI绘制),

微队列排微任务(Promise回调)

除了微队列外,队列的种类和数量均可能不同,这取决于浏览器厂商

以chorme举例

微队列:

用于存放需要执行最快的任务,优先级极高,比如promise.then(), MutationObserver

交互队列:

用于存放用户操作后产生的事件任务,优先级次于微队列

延迟队列:

用于存放定时器到达后的回调任务,优先级次于交互队列

注意:人工合成的事件派发, 即直接在代码里写的dom.click()或dispatchEvent(),相对于浏览器而言并不是真正的用户交互,会被当作同步任务执行

1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 12:56:58

【AI邮件管理革命】:基于Open-AutoGLM的高效分类筛选方案(附代码)

第一章:AI邮件管理革命的背景与意义 随着企业数字化进程加速,电子邮件作为核心沟通工具,其信息负载量呈指数级增长。传统手动筛选、分类和响应邮件的方式已无法满足高效办公需求,员工平均每天花费超过2.5小时处理邮件,…

作者头像 李华
网站建设 2026/8/21 21:33:34

孩子近视涨得快?家长最容易忽略的,是调节力已经撑不住了

在儿童青少年近视防控领域,“每天户外活动2小时”“减少连续近距离用眼时间”……这些建议在理论上无懈可击,但在学业压力巨大的今天,却难以真正落实。不少家长发现,即便严格督促孩子遵守这些原则,近视度数仍在不断攀升…

作者头像 李华
网站建设 2026/8/21 12:30:27

高阶嵌入式工程师必备:GDB+Core Dump 死机追踪核心方法论

在嵌入式Linux场景中,“系统死机”多数是用户态进程触发致命错误(如段错误、栈溢出) 导致的进程崩溃(表现为服务无响应、设备卡死),而GDBCore Dump是定位这类死机根因的“黄金组合”——前者是调试工具&…

作者头像 李华
网站建设 2026/8/21 2:22:49

揭秘Open-AutoGLM数据归档黑科技:如何实现客户信息零丢失与秒级检索

第一章:Open-AutoGLM客户信息归档的核心价值在企业级数据管理中,客户信息的完整性、安全性和可追溯性是构建可信服务体系的基础。Open-AutoGLM 通过智能化语义理解与自动化归档机制,显著提升了客户数据处理的效率与合规水平。系统不仅支持多源…

作者头像 李华
网站建设 2026/8/21 11:30:36

【深客松】知识图谱技术栈

知识图谱技术栈核心可视化库 D3.js 7.9.0 d3.forceSimulation - 力导向图模拟(用于链接布局) d3.select - DOM 选择与操作 d3.drag - 节点拖拽交互 d3.zoom - 画布缩放与平移 d3.forceLink - 链接力计算 d3.pointer - 鼠标坐标转换 SVG 路径绘制&#xf…

作者头像 李华
网站建设 2026/8/20 21:46:58

联系人混乱不堪?用Open-AutoGLM一键智能归类,省时又精准

第一章:联系人混乱不堪?智能分类迫在眉睫现代企业与个人日常沟通中,联系人数据呈爆炸式增长。邮箱通讯录、CRM系统、社交平台好友列表中充斥着大量未归类、重复甚至失效的联系人信息,导致关键沟通效率下降,营销活动精准…

作者头像 李华