首先解析收到的文档,根据文档定义构建一棵D0M树,D0M树是由D0M元素及属性节点组成 的。
然后对CSS进行解析,生成CSSOM规则树。
根据D0M树和CSSOM规则树构建渲染树。渲染树的节点被称为渲染对象,渲染对象是一个包 含有颜色和大小等属性的矩形,渲染对象和D0M元素相对应,但这种对应关系不是一对一的, 不可见的D0M元素不会被插入渲染树。还有一些D0M元素对应几个可见对象,它们一般是一 些具有复杂结构的元素,无法用一个矩形来描述。
当渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就 会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是要弄清楚各个节 点在页面中的确切位置和大小。通常这一行为也被称为“自动重排”。
布局阶段结束后是绘制阶段,遍历渲染树并调用渲染对象的paint方法将它们的内容显示在 屏幕上,绘制使用UI基础组件。
值得注意的是,这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内 容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是 解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.