我有一个问题是在我的所有页面上加载相同的脚本,而不必一遍又一遍地定义它们。
我想出了一个半完整的解决方案,看起来像......
var scriptLocs = [];
function loadScripts() {
for (var i = 0; i < scriptLocs.length; i++) {
var crtElement = document.createElement('script');
crtElement.src = scriptLocs[i];
var hh = document.getElementsByTagName('head')[0];
// Getting head tag
hh.appendChild(crtElement);
//Adding it to head
}
}
该数组可能非常大,例如大约 120 个脚本(2.5MB),其中包括 jQuery 和 Knockout 等...
我遇到的问题是这可能不可靠我的函数似乎错过了,或者以与我的数组中定义的顺序不同的顺序加载。顺序非常重要,因为有些东西可能依赖于 jQuery,所以它必须在其他脚本之前加载。
每次刷新时也会出现不同的错误...例如,加载顺序可能不同?
有没有定义一个元素中的所有脚本然后一次附加很多脚本?这行得通吗?
更新:
使用这个 test.js 文件
for (var i = 0; i < scriptLocs.length; i++) {
document.write("<script type=\"text/javascript\" src=\"" + scriptLocs[i] + "\"><\/script>");
}
并把它作为头脑中的第一件事包括......
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="test.js"></script>
似乎可以解决这个问题