一般script:立刻申请文件,并且阻塞渲染引擎,js文件加载实现后阻塞渲染引擎并立刻执行文件内容

async属性:立刻申请文件,但不阻塞渲染引擎,js文件加载实现后阻塞渲染引擎并立刻执行文件内容(多个应用async引入的脚本不保障按引入程序执行)

defer属性:立刻申请文件,但不阻塞渲染引擎,等到html解析实现后(DOMContentLoaded事件调用前)再执行文件内容(多个应用defer引入的脚本会按引入程序执行)

type="module"属性:浏览器依照ECMA Script 6规范将文件当做模块进行解析,默认阻塞成果同defer,也能够配合async在申请实现后立刻执行

具体成果如图:

绿色的线示意解析html,蓝色的线示意申请文件,红色的线示意执行script代码