defer和async执行的区别

defer和async执行的区别?

**

defer和async执行的区别主要在于加载后什么时候执行,以及是否顺序执行。

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

2.两者的区别在于脚本加载完成之后何时执行,可以看出defer更符合大多数场景对应用脚本加载和执行的要求,
等dom元素加载完毕后执行,按照顺序执行

3.如果存在多个有defer属性的脚本,那么它们是按照加载顺序执行脚本的;
而对于async,它的加载和执行是紧紧挨着的,无论声明顺序如何,只要加载完成就立刻执行,它对于应用脚本用处不大,因为它完全不考虑依赖。


作者 [@sha Qihe]

2015 年 6月 18日