2010-09-16 68 views
1

当我们在头部动态插入JS spript时,会触发JS文件的解锁(或与其他资源并行)下载。一旦JS被下载,浏览器在解析和执行脚本时会阻塞,还是解析和执行也是异步的?JS头部动态添加

var headID = document.getElementsByTagName("head")[0];   
var newScript = document.createElement('script'); 
newScript.type = 'text/javascript'; 
newScript.src = 'http://www.somedomain.com/somescript.js'; 
headID.appendChild(newScript); 

回答

2

以下步骤,以便发生:

1)脚本负载
2.)脚本获取interpretted(块JavaScript的线程)
3.)脚本负载/完整事件触发。

JavaScript是单线程的,解释和执行将因此阻止其他脚本。它也会阻止DOM呈现。动态添加脚本的唯一好处是可以防止脚本加载阻止DOM呈现。

1

只有下载同时发生。正如@BGerrissen所述,JavaScript是单线程的。解释和执行会阻止UI线程。