(自用面试题)浏览器的渲染过程是什么?

73 阅读1分钟
  1. 构建DOM树
    由于浏览器无法直接理解和使用HTML,所以需要将HTML转化为浏览器能够理解的结构,即DOM树,这个过程通过HTML解析器完成。
  2. 构建CSSOM树
    由于浏览器无法直接理解和使用CSS,所以需要将CSS转化为浏览器能够理解的结构,即CSSOM树,这个过程通过CSS解析器完成。
  3. 构建渲染树
    DOM树和CSSOM树都构建完成以后,浏览器会根据这两棵树构建出一棵渲染树,它是这两棵树的结合,即一个可以知道每个节点会应用什么样式的数据结构。
  4. 布局页面
    渲染树构建完成之后,元素的结构关系以及需要应用的样式就确定了。这时浏览器会计算出所有元素的大小和位置,将元素间的嵌套关系以盒模型的形式写入文档流。
  5. 绘制页面
    遍历渲染树并调用渲染对象的paint方法将它们的内容显示在屏幕上。

ATTENTION:
这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的HTML和CSS都解析完成之后再去构建和布局渲染树,它是解析完一部分内容就显示一部分内容,同时可能还在通过网络下载其余内容。