defer

异步加载文档但要等整个页面在内存中正常渲染结束(DOM结构完全生成,以及其他脚本执行完成),才会执行,也就是渲染完再执行,而且是按照defer脚本的声明顺序来执行脚本。

async

异步加载文档,一旦下载完成渲染引擎就会中断渲染,执行这个脚本以后再继续渲染,多个async脚本是不能保证加载顺序的。

module

type=”module”可以让浏览器加载es6模块,不会造成阻塞加载效果等价与
defer,形如:

  1. <script type="module" src="foo.js"></script>