动态添加JS到头部

时间:2010-09-16 11:20:41

标签: javascript browser

当我们动态插入JS spript时,它会触发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 个答案:

答案 0 :(得分:2)

以下顺序发生:

1。)脚本加载
2.)脚本被解释(阻止javascript线程)
3.)脚本加载/完成事件触发。

JavaScript是单线程的,解释和执行将阻止其他脚本。它还将阻止DOM渲染。动态添加脚本的唯一优势是防止脚本加载也阻止DOM呈现。

答案 1 :(得分:1)

只有下载并行发生。正如@BGerrissen所提到的,JavaScript是单线程的。解释和执行将阻止UI线程。