非同期荷重js
5126 ワード
非同期ローディング は
js
の実装には、3つの方法がある.defer
:スクリプトの実行を遅延するかどうかを規定していますが、並行してダウンロードしています.DOM
ドキュメント全体が解析されてから実行されます.IE
しか使えません.コードを内部に書いてもいいです.<script type="text/javascript" src="demo.js" defer="defer"></script>
async
:非同期ローディング、ローディングが完了したら実行し、ページが解析されているかどうかにかかわらず実行する.async
は外部スクリプトしかロードできません.js
をscript
タグに書くことはできません. <script type="text/javascript" src="demo.js" async="async"></script>
script
を作成し、DOM
に挿入し、ロード完了後callBack
(このような形式の非同期ローディングは、IEブラウザでは実行できない以外は、すべて可能である).function loadScript(url, callback){
var script = document.createElement_x("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others: Firefox, Safari, Chrome, and Opera
script.onload = function(){
callback();
};
}
script.src = url;
document.body.appendChild(script);
}