动态和顺序加载javascript
load javascript dynamically and sequentially
我有5个不同的js文件,我想在ajax调用成功响应状态后执行。
我现在正在做的是:
function require(list, fn)
{
for (var i = 0; i < list.length; i++) {
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = list[i];
if (newScript.readyState){ //IE
newScript.onreadystatechange = function(){
if (newScript.readyState == "loaded" ||
newScript.readyState == "complete"){
newScript.onreadystatechange = null;
callback();
}
};
} else { //Others
newScript.onload = function(){
callback();
};
}
newScript.src = url;
headID.appendChild(newScript);
}
}
假设我有file1.js,file2.js,file3.js。我在file2.js上声明了一个变量dca,我想在file3.js中使用它进行一些操作。为此,我需要依次加载file1.js和file2.js。但不幸的是,这并没有发生在我使用的方法中。
请帮助我如何实现这个目标。
我甚至尝试过
addEventListeners('load',function({ //some operations }));
应该可以:
const require = ([head, ...tail]) => {
const loadScript = link => new Promise((fulfill, reject) => {
const script = document.createElement('script');
script.addEventListener('load', fulfill);
script.addEventListener('error', reject);
script.src = link;
document.head.appendChild(script);
});
loadScript(head).then(() => {
if (tail.length > 0) {
require(tail);
}
});
};
我希望代码是自解释的。
还要确保dca
变量是全局的
相关文章:
- HTML外部javascript加载另一个javascript
- 什么是谷歌地图'的javascript加载策略
- 使用javascript加载knockoutjs组件
- Javascript - 加载函数运行时未定义的变量
- 使用javascript加载并显示来自另一个域的页面,而不显示原始URL
- 使用Javascript加载页面
- Javascript加载时间过长
- 使用纯Javascript加载外部URL内容
- 如何在使用javascript加载页面时直接设置对象参数
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- 将外部 SVG 和包含 JavaScript 加载到 HTML 中
- 是否有一个 JavaScript 加载器可以将套接字的数量限制为 1 或 2
- 使用本地生成的代码通过 JavaScript 加载 IFrame
- Jquery/javascript:加载页面时不需要的重复函数
- 一段时间后使用Javascript加载网页ASP.net
- 在https网站上用javascript加载封面图片
- 如何使用cURL获取JavaScript加载的网络内容
- 如何检查是否使用javascript加载了框架?-不是加载,不是iframe
- I'我正在尝试将JavaScript加载到我的UIWebView中
- 如何用Javascript加载本地文件