浏览器渲染与event loop
2024-10-21 10:13:22
线程
1.GUI渲染线程(一个)
2.JS引擎线程(一个)
3.事件触发线程
4.定时器触发线程(多个)
5.异步http请求线程(多个)
线程执行
页面加载时
GUI渲染引擎和JS执行引擎互斥,当GUI渲染引擎解析html处理到script标签,会立即挂起解析html的任务,然后开始解析js代码,这里就是执行一个宏任务。直到所有这个宏任务执行完成后,继续执行html解析渲染
JS是单线程指的是执行引擎是单线程
宏任务微任务
宏任务是由宿主发起的,而微任务由JavaScript自身发起。
Event loop
JS是基于事件驱动的,其需要一种事件循环机制和来进行线程的配合
js执行引擎(主线程)在空闲时判断是否有未执行的微任务,有则一个个将微任务中的回调函数放到主线程中执行,直到微任务队列清空;微队列清空后判断宏任务队列
最新文章
- TotalCommander 之 日常使用技巧
- Android Studio1.4.x JNI开发基础 - 简单实例
- wifi强度数据采集器(android)
- Java基础知识学习(七)
- Monyer's Game 0~5关过关方法
- Css - Table.css
- angularJs的工具方法
- POJ 1088 滑雪【记忆化搜索】
- Oracle 分析函数 ";ORA-30485: 在窗口说明中丢失 ORDER BY 表达式";
- ftp 匿名访问设置
- linux中内核的一个不错的参数somaxconn
- MyBatis insert后返回自增字段的值
- HDU 1076 An Easy Task
- Winform ComBox模糊查询
- .NET Core中的数据保护组件
- thinkphp5.0验证的封装
- CSS如何让不相等的字符上下对齐
- 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
- ECC
- 摆脱定时任务的cron表达式的困扰
热门文章
- 玩转web3第二篇——Web3UI Kit
- 继承QAbstractTableModel QStyledItemDelegate实现自定义表格,添加进度条和选中框。
- Quartz.Net 官方教程 Tutorial 1/3(Jobs 和 Trigger)
- FAQ Selenium中提示can not connect to the service chromedriver 的解决方法
- drf-drf请求、响应、基于GenericAPIView+5个视图扩展类
- Windows 10 企业版 LSTC 激活秘钥及方法
- ros_navigation案列操作流程
- brew基本操作指南
- JZOJ 1082. 【GDOI2005】选址
- LG P2839 [国家集训队]middle