script 标签
async (异步执行)
浏览器在加载页面时,遇到带有 async 的脚本,浏览器会立即进行下载,同时继续加载页面。 async 下载的脚本会在它加载完后会立即执行,此时页面可能还没加载完成。如果脚本需要修改 DOM ,就有可能出现错误。
defer (推迟执行)
浏览器在加载页面时,遇到带有 defer 的脚本,浏览器会立即进行下载,同时继续加载页面。 defer 下载的脚本不会在他加载完成后立即执行,而是会等到页面加载完毕后才开始执行。
不管是 async 还是 defer ,都只适用于外部脚本。