网页的渲染机制

作者: 安石0 | 来源:发表于2017-06-06 22:41 被阅读0次

    从我们输入网址到展现页面,可以分为三个过程:

    浏览器解析

    1、浏览器通过请求的 URL 进行域名解析,向服务器发起请求,接收文件(HTML、CSS、JS、Images等等)。

    2、HTML 文件加载后,开始构建 DOM Tree

    3、CSS 样式文件加载后,开始解析和构建 CSS Rule Tree

    4、Javascript 脚本文件加载后, 通过 DOM API 和 CSSOM API 来操作 DOM Tree 和 CSS Rule Tree

    浏览器渲染

    1、解析HTML标签,构建DOM tree

    2、解析 CSS 标签, 构建 CSSOM tree,

    3、把 DOM 和 CSSOM 组合成 渲染树 (render tree)

    4、在渲染树的基础上进行布局, 计算每个节点的几何结构,(计算最终的样式),可在Chrome调试工具,computed中查看到最终效果。

    5、把每个节点绘制到屏幕上 (painting)

    Webpage Rendering

    当用户在浏览网页时进行交互或通过 js 脚本改变页面结构时,以上的部分操作有可能重复运行,此过程称为 Repaint 或 Reflow。

    Repaint

    当元素改变的时候,将不会影响元素在页面当中的位置(比如 background-color, border-color, visibility),浏览器仅仅会应用新的样式重绘此元素,此过程称为 Repaint。

    Reflow

    当元素改变的时候,将会影响文档内容或结构,或元素位置,此过程称为 Reflow。( HTML 使用的是 flow based layout ,也就是流式布局,所以,如果某元件的几何尺寸发生了变化,需要重新布局,也就叫 Reflow。)

    Reflow 的成本比 Repaint 的成本高得多的多。一个结点的 Reflow 很有可能导致子结点,甚至父点以及同级结点的 Reflow 。在一些高性能的电脑上也许还没什么,但是如果 Reflow 发生在手机上,那么这个过程是延慢加载和耗电的。----浏览器的渲染原理简介

    相关文章

      网友评论

        本文标题:网页的渲染机制

        本文链接:https://www.haomeiwen.com/subject/ybvnfxtx.html