标签:
CSSOM树和DOM树连接在一起形成一个render tree,渲染树用来计算可见元素的布局并且作为将像素渲染到屏幕上的过程的输入。
第一步是结合DOM树和CSSOM树形成“render tree”,渲染树用来描述所有可见的DOM内容,并且将CSSOM样式信息附加到节点上。
为了形成渲染树,浏览器大致做的事情有:
最后输出的是一个render包括了屏幕上可见内容的样式信息和内容信息。
我们知道了哪些元素应该被显示以及元素的样式,但是我们还没有计算元素在设备中的确切的位置和大小——这是“布局”阶段,同样也被叫做“reflow”。
<html> <head> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Critial Path: Hello world!</title> </head> <body> <div style="width: 50%"> <div style="width: 50%">Hello world!</div> </div> </body> </html>
上面的页面展示了两个div:第一个div是整个视图的一半,第二个div是父亲宽度的一半——也就是说是整个视图的25%。
布局的输出是“盒子模型”,并且将相对定位转化成屏幕上的绝对像素。
最后,我们只差将render tree上的所有节点转化成屏幕上的确切像素——这个步骤通常被称为“painting”或者“rasterizing”。
每个步骤都要花费一些时间,谷歌浏览器开封工具为我们描述了一些步骤所花费的时间:
显示构造render tree以及布局和paint的时间受到页面的大小,被应用的样式和正在运行的设备影响。
页面越大,浏览器将要做更多工作;样式越复杂,painting阶段所花费的时间也越多。
但是,我们的页面完成了!WOOOO!
让我们快速的浏览下浏览器所做的事情:
虽然我们的页面很简单,但是它进行了大量的工作!下一章我们讨论怎样对渲染进行优化。
标签:
原文地址:http://www.cnblogs.com/RachelChen/p/5456182.html