【浏览器】浏览器内核

2023/01/10 11:05:36

现代浏览器是多进程的。

渲染引擎(进程)

浏览器的渲染引擎包含以下线程:

  • GUI 渲染线程。
  • JavaScript 引擎。
  • 事件触发线程。
  • 定时触发器线程。
  • http 异步请求线程。

GUI 渲染线程

负责渲染浏览器页面,解析 HTML,CSS,构建 DOM 树和 Rende 树,布局和绘制等。

当页面需要重绘(Repaint)或由于某种操作引发回流(Reflow)时,该线程就会执行。

相关文章:浏览器图层与重绘重排

JavaScript 引擎

JS 引擎负责解析运行 JS 代码。

GUI 线程与 JS 引擎是互斥的,如果 JS 代码执行时间过长就会阻塞页面渲染。

事件触发线程

当一个事件被触发时该线程将该事件添加到事件队列的队尾。

定时触发器线程

JS 中的定时器并不是到时间后立即执行事件,而是在到时间后将事件添加到事件队列中。

http 异步请求线程

http 请求在单独的线程中处理,浏览器检测到状态变化时,就将回调函数添加到事件队列中。

参考

浏览器的线程参与情况open in new window