当我们在head中动态插入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);
最佳答案
以下顺序发生:
1.) 脚本加载
2.) 脚本被解释(阻塞 javascript 线程)
3.) 脚本加载/完成事件触发。
JavaScript 是单线程的,因此解释和执行会阻塞其他脚本。它还会阻止 DOM 渲染。动态添加脚本的唯一优势是防止脚本加载也阻塞 DOM 渲染。
关于javascript - 头部动态添加JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726127/