使用appendChild()动态添加的脚本是按顺序执行还是并行执行
Are scripts added dynamically with appendChild() executed sequentially or in parallel?
我正在使用类似以下代码动态地向页面添加脚本:
var s = document.createElement('script');
s.src = 'script.js';
(document.head||document.documentElement).appendChild(s);
我添加的第一个脚本是jQuery,之后捆绑了几个插件(都在一个JS文件中),然后第二个脚本使用jQuery和添加的第一份JS文件中创建的一些其他对象。
问题是,在第二个脚本中抛出了错误,称jQuery,以及其他一些未定义的内容。
我假设以这种方式添加到DOM的脚本将按顺序解析/执行,但这些错误表明它们是并行执行的。
是哪一个?
基本上,建议您使用库来处理此问题,但我不太喜欢库,因为它们通常提供的内容远远超过您的需求,但这并不一定是坏事。
要按顺序加载脚本,您需要在第一个脚本完成加载后绑定第二个脚本进行加载。
var script1 = document.createElement('script');
script1.onload = function() {
// script 1 has loaded
var script2 = document.createElement('script');
document.head.appendChild(script2);
script2.src = "...";
}
document.head.appendChild(script1);
script1.src = "...";
相关文章:
- 使用appendChild()动态添加的脚本是按顺序执行还是并行执行
- 如何在angularjs中按顺序执行多数据ng应用程序
- 要按顺序执行的异步代码
- AngularJS:如何按照预定义的顺序执行函数
- 按顺序执行导入的 Javascript 函数
- 无法让 jQuery 以正确的顺序执行代码
- 触发后的 Javascript 顺序执行
- $http.post() angularjs 响应函数未按正确的顺序执行
- 如何按顺序执行 jQuery 函数
- 为什么Javascript不按顺序执行代码
- 对象在循环中运行时未定义,但在按顺序执行时未定义
- 按顺序执行ajax请求的动态编号
- javascript在网络上的顺序执行
- SQL语句是通过PhoneGap'按顺序执行的吗;的Web SQL数据库
- jQuery Deferred和Promise用于同步和异步函数的顺序执行
- 顺序执行js
- 如何按顺序执行承诺数组
- 有没有更好的方法以一定的顺序执行一堆部分异步的jQuery函数
- 如何确保 Dojo 模块按特定顺序执行
- 为什么我的 JavaScript 不能按顺序执行