私は、ブラウザがページの残りの部分に関して非同期スタイルのスクリプトをどのように実行するかについて、さらに詳しい情報を探しています。JavaScriptの非同期読み込みと実行順序
私はそうのような非同期ローディングパターンを次のJSスクリプトを持っている:
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'http://yourdomain.com/script.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
私は、これは非ブロッキング・ダウンロードとページが、このダウンロードしながら、ロードし続けるであることを理解しています。ここまでは順調ですね。後で私はいくつかの変数を宣言しておきます:
var x = "something";
私はこれまでに読み込んだスクリプトでこの変数を使用できますか?私は上記のロードスクリプトで
alert(x);
を行う場合は、動作しているようですが、私はそれは常にそうなりますか分かりません。また、DOM要素についてはどうでしょうか。いくつかのdivがページの後半であった場合:
<div id="myDiv"></div>
と私のスクリプトに私が
var div = document.getElementById("myDiv");
この作品は正しくウィルはありますか?私のテストでは、これらのことはうまくいくように見えますが、非同期スクリプトにはそれ以上のページコンテンツが表示されるかどうかはわかりません。
私の質問は、基本的には、DOMロードされたイベントをチェックせずに非同期に読み込まれたスクリプトからアイテムにアクセスするのが安全ですか?