浏览器的一些组成

53 阅读1分钟

浏览器的一些组成

浏览器存储(比如localStorage)独立于tab页

浏览器每个tab页都是一个进程,相互独立

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