script的两个属性——async和defer:
① 没有defer或async,浏览器会立即加载并执行指定的JS脚本,不等待后续文档元素,读到JS脚本就加载并执行。
② 有async,加载后续文档元素的过程将和JS的加载与执行并行进行(异步)。
③ 有defer,加载后续文档元素的过程将和JS的加载并行进行(异步),但JS的执行要在所有文档元素解析完成之后,DOMContentLoaded 事件触发之前完成。
二者的详细对比请见:http://blog.csdn.net/zhouziyu2011/article/details/60149590