- 构建DOM树
由于浏览器无法直接理解和使用HTML,所以需要将HTML转化为浏览器能够理解的结构,即DOM树,这个过程通过HTML解析器完成。 - 构建CSSOM树
由于浏览器无法直接理解和使用CSS,所以需要将CSS转化为浏览器能够理解的结构,即CSSOM树,这个过程通过CSS解析器完成。 - 构建渲染树
DOM树和CSSOM树都构建完成以后,浏览器会根据这两棵树构建出一棵渲染树,它是这两棵树的结合,即一个可以知道每个节点会应用什么样式的数据结构。 - 布局页面
渲染树构建完成之后,元素的结构关系以及需要应用的样式就确定了。这时浏览器会计算出所有元素的大小和位置,将元素间的嵌套关系以盒模型的形式写入文档流。 - 绘制页面
遍历渲染树并调用渲染对象的paint方法将它们的内容显示在屏幕上。
ATTENTION:
这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的HTML和CSS都解析完成之后再去构建和布局渲染树,它是解析完一部分内容就显示一部分内容,同时可能还在通过网络下载其余内容。