浏览器加载页面的过程

77 阅读1分钟
  • 过程

    1. 打开页面,浏览器会从服务端获取HTML内容。
    2. 从上到下解析HTML元素。
    3. 元素内容首先被解析,此时浏览器还没开始渲染页面。标签里面一般还会有
    4. 当浏览器遇到script,会暂停解析并下载JavaScrip脚本。(所以script要放在底部,避免阻塞页面的渲染。)
    5. 当JavaScript脚本下载完成后,浏览器的控制权交给JavaScript引擎。
    6. 当脚本执行完成后控制权会交回给渲染引擎。
    7. 继续渲染元素,此时元素内容开始被解析,浏览器开始渲染页面。
  • defer和async

    1. script:会阻塞html的解析,等待js文件下载并解析完成,才会继续解析html。
    2. async script: 异步下载js文件(这个时候不会影响html渲染),文件一旦下载完成立即执行(这个阶段可能会阻塞html的解析)。
    3. defer script:完全不会影响html的解析,html解析完成后再按顺序执行脚本。

script.png