浏览器解析HTML文档的过程

  • 浏览器开始解析HTML文档,document.readyState属性等于loading
  • 浏览器遇到HTML文档中的<script>元素,并且没有asyncdefer属性,就暂停解析,开始执行脚本,这时document.readyState属性还是等于loading
  • HTML文档解析完成,document.readyState属性变成interactive
  • 浏览器等待图片、样式表、字体文件等外部资源加载完成,一旦全部加载完成,document. readyState属性变成complete

async是ajax的一个参数,用来设定同步或者异步,不设置的情况默认是异步操作

要知道任何javascript在执行的时候都会中断当前html文档解析,带有 defer 属性的<script>标签可以放置在文档的任何位置。对应的 JavaScript 文件将在页面解析到<script>标签时开始下载,但不会执行,直到 DOM 加载完成,即onload事件触发前才会被执行。当一个带有 defer 属性的 JavaScript 文件下载时,它不会阻塞浏览器的其他进程,因此这类文件可以与其他资源文件一起并行下载。

原文地址:https://www.cnblogs.com/goldenRazor/p/6138105.html