美文网首页
运行环境—页面加载和渲染过程

运行环境—页面加载和渲染过程

作者: 泡杯感冒灵 | 来源:发表于2020-07-23 12:49 被阅读0次

    题目

    1. 从输入url到渲染出整个页面的过程

    2. window.onload和DOMContentLoaded的区别

    // window.onload  页面的全部资源加载完,才会执行,包括图片,视频等
    // DOMContentLoaded DOM渲染完即可执行,此时图片和视频可能还没有加载完,尽量用这个方法,因为图片视频加载可能比较耗时
    
    
    <body>
      <div class="container">
        <p>我是p1</p>
        <p>我是p2</p>
        <p>我是p3</p>
      </div>
      <img id="img1" src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3330183023,1216422781&fm=26&gp=0.jpg" alt="">
      <script src="./index.js"></script>
    </body>
    
    // index.js
    const img1 = document.getElementById('img1')
    img1.onload = function () {
      console.log("img loaded")
    }
    
    window.addEventListener('load', function () {
      console.log('window loaded')
    })
    
    document.addEventListener('DOMContentLoaded', function () {
      console.log('dom content loaded')
    })
    
    // 打印顺序是
    1. dom content loaded
    2. img loaded
    3. window loaded
    

    知识点

    1. 加载资源的形式(也就是加载了什么东西)
    • html代码
    • 媒体文件。如图片,视频等
    • javascript,css
    加载资源的过程
    • DNS解析 (Domain Name System 域名系统)
    1. DNS解析一般指域名解析,域名解析就是将域名重新转换为IP地址的过程
    2. 访问一台互联网上的服务器,最终还必须通过IP地址来实现,但是IP地址难以记忆,所以有了域名
    3. 一个域名对应一个IP地址,而一个IP地址可以对应多个域名,所以多个域名可以同时被解析到一个IP地址,当然同一个网站,不同的区域可以配置不同的IP地址。
    4. 域名解析需要用专门的域名解析服务器(DNS)来完成
    • 有了解析到的IP地址后,浏览器根据IP地址向服务器发起HTTP请求
    • 服务器接收并处理请求,然后返回给浏览器
    渲染页面的过程
    • 根据HTML代码,构建DOM Tree
    • 根据CSS,生产CSSOM(css object model)
    • 将DOM Tree和CSSOM 整合成 RenderTree
    • 根据 RenderTree 渲染页面
    • 渲染的过程中,如果遇到<script>则暂停渲染,优先下载并执行JS代码,完成后再继续渲染;(JS执行和渲染是共用一个线程的,因为JS有可能会改变DOM结构)
    • 直至把 RenderTree 渲染完成

    相关文章

      网友评论

          本文标题:运行环境—页面加载和渲染过程

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