其中蓝色代表js脚本网络加载工夫,红色代表js脚本执行工夫,绿色代表html解析。

从图中咱们能够明确一下几点:

  1.defer和async在网络加载过程是统一的,都是异步执行的;

  2.两者的区别在于脚本加载实现之后何时执行,能够看出defer更合乎大多数场景对利用脚本加载和执行的要求;

  3.如果存在多个有defer属性的脚本,那么它们是依照加载程序执行脚本的;而对于async,它的加载和执行是紧紧挨着的,无论申明程序如何,只有加载实现就立即执行,它对于利用脚本用途不大,因为它齐全不思考依赖。