javascriptの動的挿入を行うと、時には問題を発注することがあります。これを解決するには、onloadプロパティを使用することがあります。しかし、多くの外部JavaScriptがあり、それらのスクリプトを順番に読み込む必要がある場合は、どうすればよいですか?Javascript複数の動的挿入
この問題は再帰的に定義されたonload関数によって解決されました。しかし、効率についてはそれほど確かではない...これはスクリプトなので、怠惰な評価をすると思う。
//recursively create external javascript loading chain
//cautiously add url list according to the loading order
//this function takes a list of urls of external javascript
function loadScript(url) {
if(url.length == 0) {
//final function to execute
return FUNCTION;
}
var f = function(){
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url.pop();
//recursion
script.onload = loadScript(url) ;
document.getElementsByTagName("head")[0].appendChild(script);
}
return f;
}
function loadScripts(urls) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = urls.pop();
script.onload = loadScript(urls) ;
document.getElementsByTagName("head")[0];.appendChild(script);
}
loadScripts(["aaa.js","bbb.js","ccc.js"]);
ありがとうございます!
あなたを混乱させています...実際にloadScript()を呼び出す関数を追加しました。 (私はこれを確認しました..)
requireJSやモジュールをサポートするDojoのようなJSフレームワークのような市販のローダーを使用することを検討しましたか? – hugomg