zoukankan      html  css  js  c++  java
  • 浏览器渲染原理

    1. 解析HTML,生成DOM树,解析CSS,生成CSSOM树

    2. 将DOM树和CSSOM树结合,生成渲染树(Render Tree)

    3. Layout(回流): 根据生成的渲染树,计算它们在设备视口(viewport)内的确切位置和大小,这个计算的阶段就是回流

    4. Painting(重绘): 根据渲染树以及回流得到的几何信息,得到节点的绝对像素

    5. Display:将像素发送给GPU,展示在页面上

    css:

    link  使用是异步 的 会开启一个新线程 专门来解析 这个css 文件 并不会影响主线程的任务

    style 内嵌样式 从上往下解析 解析完成继续解析dom  解构

    import 是同步的 不会开启新的线程 而是让主线程去获取 这样会阻碍主线程的任务 ,只有等这个外部样式 导入解析后 才会继续解析 Dom 解构

    注意如果样式不是特别多 可以选择内嵌样式这种方式 减少http 请求 提高页面的渲染速度

    js:

    script 主线程会从服务器获取资源 并且将js 资源解析加载 加载完成后才继续渲染dom 结构 可以 看出来是异步  这也是为什么 script 放到底部的原因 为了获取dom 元素 或者 不阻碍dom 的渲染 

    可以使用defer 或者 async   变成异步获取资源

     打印:

     defer 可以遵循原来的加载顺序 

    async  是无序的 哪个先获取哪个就先加载 

  • 相关阅读:
    Boost Log : Trivial logging
    Boost Log : Definitions
    Boost Log : Setting up sinks
    Boost Log
    VS工程文件记录
    vs2017激活密钥
    JWT库
    Mac 使用 NFS 连接 Centos 上的共享文件夹
    Mahout源码目录说明
    linux中的线程同步:生产者、消费者问题
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/12822147.html
Copyright © 2011-2022 走看看