浏览器的功能

  • 发起请求,
  • 下载 HTML,解析 HTML,
  • 下载 CSS,解析 CSS,渲染界面,
  • 下载 JS,解析 JS,执行 JS等。

功能模块:用户界面、渲染引擎、JS 引擎、储存等
上面功能模块一般各处于不同线程(比进程更小)
如果进程是车间,那线程就是车间里的流水线

JS 如何渲染?

  • JS 不能直接修改 HTML 或 CSS,需要线程之间的通信来通知渲染引擎,称之为跨线程通信。

    DOM操作为什么慢?

  • DOM 操作是跨线程的操作,比 JS 线程内的代码要慢

image.png

参考文章

进程与线程的一个简单解释
浏览器进程?线程?傻傻分不清楚!
浏览器的工作原理
How JavaScript works:inside the V8 engine