- 浏览器开始解析HTML文档,
document.readyState
属性等于loading
。 - 浏览器遇到HTML文档中的
<script>
元素,并且没有async
或defer
属性,就暂停解析,开始执行脚本,这时document.readyState
属性还是等于loading
。 - HTML文档解析完成,
document.readyState
属性变成interactive
。 - 浏览器等待图片、样式表、字体文件等外部资源加载完成,一旦全部加载完成,
document. readyState
属性变成complete
。
async是ajax的一个参数,用来设定同步或者异步,不设置的情况默认是异步操作
要知道任何javascript在执行的时候都会中断当前html文档解析,带有 defer
属性的<script>
标签可以放置在文档的任何位置。对应的 JavaScript 文件将在页面解析到<script>
标签时开始下载,但不会执行,直到 DOM 加载完成,即onload
事件触发前才会被执行。当一个带有 defer
属性的 JavaScript 文件下载时,它不会阻塞浏览器的其他进程,因此这类文件可以与其他资源文件一起并行下载。