【浏览器】浏览器内核
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 请求在单独的线程中处理,浏览器检测到状态变化时,就将回调函数添加到事件队列中。