浏览器的一些组成
浏览器存储(比如localStorage)独立于tab页
浏览器每个tab页都是一个进程,相互独立
- GUI渲染线程:
- ( 解析HTML &&CSS ,构建DOM树&&CSSOM树 ) => 通过前面的一些操作去布局、绘制
- 与JS引擎线程互斥,当执行JS线程时,GUI渲染会被挂起,当任务队列空闲时,主线程才会回去执行GUI
- JS引擎线程:
- 处理JS,解析执行脚本
- 分配、处理、执行待执行脚本,同时处理待执行事件以及维护事件队列
- 阻塞GUI渲染
- 定时器触发线程:
- 异步定时器的处理和执行 - setTimeout | setInterval
- 接收JS引擎分配的定时器任务,并执行
- 处理完成交由事件触发线程
- 事件触发线程:
- 接收所有来源的事件
- 将回调的事件依次加入到任务队列的队尾,交还给JS引擎执行
- 异步HTTP线程:
- 异步执行请求类操作
- 接收JS线程异步请求操作
- 监听回调,交给事件触发线程做处理