一、复习
1.进程和线程
- 进程:指一个程序(或浏览器打开一个页面就是开辟一个进程)* 线程:程序中具体执行任务的一个进程中可能包含一到多个线程!!* 单线程:同时只能处理一件事,上一件事处理完,下一件事才能处理「同步编程」* 多线程:可同时处理多件事情,上一件事情即便没有处理完,下一件事也可以交给其他线程去处理「异步编程」### 2.浏览器的渲染进程
浏览器打开一个页面就是开辟一个进程,每个进程中会包含多个线程「浏览器是多线程的」!!
- GUI渲染线程:渲染解析HTML/CSS代码,并且绘制页面 =>W3C* JS引擎线程:渲染解析JS代码 =>ECMAScript「ECMA」* 定时器监听线程:设置定时器后,浏览器就会分配一个线程(小人)去监听定时器是否到时间* 事件监听线程:完成事件绑定后,也会分配一个线程去监听事件是否触发* HTTP网络线程:分配一个线程,去服务器获取相关的资源信息 「并发上限:同源下最多开辟5~7个」* …接下来正式开始!
二、浏览器底层渲染机制
当基于HTTP网络,从服务器端获取到页面源代码后,到浏览器把其绘制成页面,中间所做的事情,就是我们要研究的渲染机制!