javascript - jQuery getScript() 与 document.createElement ('script' )

标签 javascript jquery dynamic-loading

假设这两种方法都能正确加载脚本,并且我在使用脚本(和/或使用回调)之前等待了适当的时间,那么这些方法之间的主要区别是什么。

注意:我知道第一个使用 jQuery(这是一个更大的下载等)。我真正感兴趣的是这些方法的后续影响。一个人将脚本放在与另一个不同的范围内吗?等等

jQuery:

function loadScript() {
    $.getScript('http://www.mydomain/myscript.js');
}

附加到正文:

function loadScript() {
   var script= document.createElement('script');
   script.type= 'text/javascript';
   script.src= 'http://www.mydomain/myscript.js';
   script.async = true;
   document.body.appendChild(script);
}

附加到头部:

function loadScript() {
   var head= document.getElementsByTagName('head')[0];
   var script= document.createElement('script');
   script.type= 'text/javascript';
   script.src= 'http://www.mydomain/myscript.js';
   script.async = true;
   head.appendChild(script);
}

最佳答案

jQuery 将 script 元素附加到 head(如果存在),否则附加到 document 元素。引擎盖下the code is similar .最终结果将是相同的:两种方法都在全局范围内执行新代码。

关于javascript - jQuery getScript() 与 document.createElement ('script' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791279/

相关文章:

javascript - 使用 JQuery 选择基于 dynamicID 的元素

javascript - 如何使用 javascript 将给定字符串更改为正则表达式修改的字符串

javascript - 文档级事件监听器被复制

linux - 动态加载和弱符号解析

dynamic-linking - 动态加载: Undefined Symbol In Shared Static Library

javascript - GetElementById ('div' +i) 增量

javascript - 在响应式(Reactive)表中单击其中一列时如何获取表行的数据上下文?

javascript - jQuery 验证不适用于动态附加表单

javascript - 按所有列的子集对数据表列进行排序

c - 使用转换的库兼容性问题