当前位置: 首页 > news >正文

JS事件循环

单线程的 JavaScript

同步与异步

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

事件循环

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

浏览器事件循环

浏览器进程

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

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

网络进程

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

渲染进程

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

浏览器中的 Event Loop

宏队列和微队列

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

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

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

以chorme举例

微队列:

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

交互队列:

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

延迟队列:

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

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

1

http://www.cnnetsun.cn/news/173910.html

相关文章:

  • 为什么90%的企业都在用Open-AutoGLM做客户信息归档?真相曝光
  • Open-AutoGLM实时跟进系统搭建全流程(含源码级避坑指南)
  • 【AI驱动销售革命】:Open-AutoGLM如何实现线索筛选效率提升10倍
  • 告别加班写年报!Open-AutoGLM自动写作系统实测效果曝光(附对比数据)
  • Open-AutoGLM数据同步实战指南(从配置到监控全链路拆解)
  • 【Open-AutoGLM邮件分类实战】:手把手教你构建企业级智能筛选系统
  • Java全栈工程师面试实录:从基础到实战的深度探讨
  • Open-AutoGLM核心原理深度解析:NLP+知识图谱如何重塑周报流程?
  • 【独家披露】某头部科技公司如何用Open-AutoGLM实现周报零人工干预
  • 揭秘Open-AutoGLM自动回邮系统:如何3步实现企业级智能响应?
  • Open-AutoGLM月报统计避坑指南:资深工程师总结的7大常见错误
  • 5步搞定Open-AutoGLM周报集成,让每周汇报不再加班到凌晨
  • Open-AutoGLM现场将发布什么?10位顶尖专家透露的惊人线索
  • 为什么顶尖团队都在用Open-AutoGLM做月报?背后的数据逻辑首次公开
  • Open-AutoGLM工作流监控实战指南(实时可视化监控体系搭建全解析)
  • 别让“小眼镜”挡住清晰世界!儿童近视防控,家长必知的科学指南
  • AI赋能会议管理,Open-AutoGLM预约系统深度解析
  • 打开Simulink工程时总得先泡杯咖啡——电池模型搭建这事儿,手动调参太费劲。不过这次咱们直接用二阶RC等效电路模型开搞,毕竟既要考虑极化效应又要平衡计算量
  • 读懂HikariCP一百行代码,多线程就是个孙子
  • SMP语言基础知识-应用系统,开发的痛点,开发者的痛点
  • 【Open-AutoGLM收益监控终极方案】:5分钟搭建实时收益提醒系统
  • 揭秘Open-AutoGLM体检数据查询机制:5步实现高效精准调用
  • Open-AutoGLM实战指南:7步搭建企业级智能会议纪要系统
  • 还在手动查收益?AutoGLM自动化查询方案让你效率提升10倍,省时又精准
  • 【Java毕设全套源码+文档】基于springboot的大学生家教兼职管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 从数据到决策,Open-AutoGLM如何重构车辆生命周期管理
  • 【Open-AutoGLM体检报告查询全解析】:手把手教你快速获取与解读AI健康报告
  • 社保数据天天查,你还在人工操作?Open-AutoGLM自动化方案已全面上线
  • (稀缺资源)Open-AutoGLM社保机器人部署教程:仅限内部流传的配置参数曝光
  • 2026年职场暗流:HR不会告诉你的CAIE证书真相,零基础如何破局?