美文网首页
浏览器渲染一个网页的过程

浏览器渲染一个网页的过程

作者: 你喜欢吃青椒吗_c744 | 来源:发表于2019-08-21 10:01 被阅读0次

    参考原文: 网站性能优化—CRP

    一个普通的页面,里面包含一些文本和一张图片,浏览器是如何处理这个页面的呢?

    第一步:构建DOM树

    <html>
      <head>
        <meta name="viewport" content="width=device-width,initial-scale=1">
        <link href="style.css" rel="stylesheet">
        <title>Critical Path</title>
      </head>
      <body>
        <p>Hello <span>web performance</span> students!</p>
        <div><img src="awesome-photo.jpg"></div>
      </body>
    </html>
    
    image.png
    • 转换:浏览器从磁盘或网络读取HTML的原始字节,然后根据指定的文件编码格式(例如 UTF-8)将其转换为相应字符
    • 令牌化:浏览器把字符转化成W3C HTML5 标准指定的各种确切的令牌,比如"<html>"、"<body>"以及其他在尖括号内的字符串。每个令牌都有特殊的含义以及它自己的一套规则
    • 词法分析:生成的令牌转化为对象,这个对象定义了它们的属性及规则
    • DOM构建:最后,由于HTML标记定义了不同标签之间的关系(某些标签嵌套在其他标签中),创建的对象在树状的数据结构中互相链接,树状数据结构也捕获了原始标签定义的父子关系:HTML对象是body对象的父对象,body是p对象的父对象等等


      image.png

    DOM树捕获了文档标记的属性及关系

    第二步:CSS对象模型(CSSOM)

    当浏览器构建上述网页DOM的时候,在head里面碰到一个link标签,这个标签引用了一个外部的CSS样式表:style.css。浏览器预测会需要这个资源来渲染页面,因此会立即发出一个该资源的请求。

    与HTML一样,我们需要将收到的 CSS 规则转换为浏览器可以理解、能够处理的东西。


    image.png

    第三步:构建渲染树

    将 DOM 树和 CSSOM 树融合成渲染树。

    第四步:布局

    根据渲染树进行布局,计算每个节点的几何信息

    它精确地捕获了每个元素在视口中的准确位置及尺寸大小:所有相对度量单位都被转换为屏幕上的绝对像素。

    第五步:绘制

    相当于画画的最后一步,画笔,颜料都准备好了,画布的布局怎么画都构思好了,最后一步就是一气呵成画出来。

    我们已经知道了哪些节点是可见的以及它们的计算样式和几何信息,然后我们就可以把这些信息传送到最后一个阶段,即把渲染树中的每一个节点都转化到屏幕上实际的像素点。

    相关文章

      网友评论

          本文标题:浏览器渲染一个网页的过程

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