すべてのページで同じスクリプトを何度も定義せずにロードするという問題があります。
私は次のような半分完全なソリューションを思いつきました...
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>
この問題を解決するようです