在以下情况下,我试图在另一个 JavaScript 文件中加载一些 JavaScript 文件:
js/script1.js
var script_1_method = function () {
console.log("Hello Script 1");
}
js/初始化脚本.js
console.log("Initiating Scripts...");
loadScriptMethod('js/script1.js');
script_1_method();
console.log("Hello Script 2");
index.html
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/init-script.js"></script>
</head>
<body>
</body>
</html>
控制台输出应该是
Initiating Scripts...
Hello Script 1
Hello Script 2
我研究过许多 JavaScript 加载器,如 curl.js、RequireJS、JSL,几乎所有加载器都采用异步方式加载需要回调的文件,以适应我的场景。
是否有一个库可以像上述情况一样以同步方式加载脚本而不需要回调。
如果有适合上述情况的 JavaScript 加载程序库,请告诉我。
最佳答案
可以使用同步 XHR 加载同源脚本:
var scr = getViaSynchronousXHR('js/script1.js'),
el = document.createElement("script");
el.appendChild(document.createTextNode(scr));
document.documentElement.firstChild.appendChild(el);
script_1_method();
没有源的脚本元素被同步解析和执行,因为不需要等待从缓存中下载/获取文件。
关于javascript - 内联加载 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064662/