答:下载是异步的没问题,可是每一个javascript执行的时候仍是同步的,就是先出现的script标签必定是先执行,即便是并行下载它最后一个下载完成。除非标有defer的script标签,不然任何javascript在执行的时候都会中断当前html文档解析,天然会阻止页面 渲染。javascript
三、浏览器并行下载js和异步下载js有什么性能上的区别?css
答:其实没什么性能上的区别,只是异步下载javascript能够尽快的让用户看到页面,比较安心罢了。html
四、在《高性能javascript》中提到,使用JavaScript动态生成script节点,而后将其插入到文档中动态加载js,js加载是异步的,加载和执行不会影响页面渲染!特别不理解,不是说只要执行js就阻塞页面渲染吗?java
答:javascript加载是不会影响已经渲染的页面,可是会中断html文档解析,浏览器会在javascript执行之后决定当前文档是否须要进行从新渲染或者文档重排。因此即便javascript放到最后面也会使浏览器暂停,但不影响以前已经解析出来的dom文档,此时对于用户来讲是可操做的,而在以前就加载javascript,浏览器会提前暂停,给用户看到的就是白色的页面,不友好。javascript有可能会修改dom,此时修改dom可能比较危险,由于正处于不稳定的状态,若是使用document.write甚至会迫使浏览器强制解析新出现的动态内容,若是是这种状况,javascript执行完成之后就会进行重排。若是javascript修改了css,影响了layout的话,也会进行重渲染或重排。chrome
五、作通常的项目有没有必要使用LABjs,Require.js等加载库?浏览器
答:项目大了重构起来很方便的,不必在初期就引入复杂性。dom