再帰関数の使用
私はこの仕事をとてもうまくやる関数を書きました。
// scripts.js
function loadScripts(urls, length, success){
if(length > 0){
script = document.createElement("script");
script.src = urls[length-1];
console.log();
script.onload = function() {
console.log('%c Script: ' + urls[length-1] + ' loaded!', 'color: #4CAF50');
loadScripts(urls, length-1, success);
};
document.getElementsByTagName("head")[0].appendChild(script);
}
else{
if(success){
success();
}
}
}
/* Write links sorted from last one to first to load */
/* Here, jquery will be loaded first, then materialize and then wow libray. */
urls = [ '/js/wow.js', '/js/materialize.js', '/js/jquery.js'];
loadScripts(urls, urls.length, function(){
/* Codes inside of here will be executed after js files load */
});
これらのコードを次のようなファイルに入れscripts.js
、属性を付けてロードできasync
ます。
<script async src="js/scripts.js"></script>
css async load については、この回答の編集版を参照してください。