defer和async的区别

117 阅读1分钟
  • 当浏览器加载html的时候一旦遇到了script标签就会停下来先把script标签里面的内容执行完,如果script标签里面有外部文件那就必须等待下载然后才继续向下加载。async和defer都是可以解决这个问题的。
  1. 如果使用async属性那就是异步执行,浏览器会立即进行下载与此同时继续加载页面,但是下载完的js文件什么时候执行不一定。
  2. defer推迟浏览器加载页面的时候如果遇到defer属性,浏览器就会立即进行下载与此同时继续加载页面但是不管脚本是否下载完了都会等到浏览器解析完html以后再执行脚本。(更适用于与dom有关联的脚本)
  • 不管时defer还是async都只适用于外部脚本。