当我们动态插入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);
答案 0 :(得分:2)
以下顺序发生:
1。)脚本加载
2.)脚本被解释(阻止javascript线程)
3.)脚本加载/完成事件触发。
JavaScript是单线程的,解释和执行将阻止其他脚本。它还将阻止DOM渲染。动态添加脚本的唯一优势是防止脚本加载也阻止DOM呈现。
答案 1 :(得分:1)
只有下载并行发生。正如@BGerrissen所提到的,JavaScript是单线程的。解释和执行将阻止UI线程。