このコードサンプルは、特定の名前のないベンダーのドキュメントにあります。それは、スクリプトを非同期的にロードしてから、そこから関数を呼び出すようです。私は、未定義のチェックが明白なエラーを防止することを認識していますが、これは完全に間違っていませんか?Javascript Async = true属性
IE8/9では、正しく動作しますが、LOADER_URLスクリプトがロードされて実行されるまで実行をブロックすると思います。私は非同期のattrbuteをサポートする他の多くのブラウザを信じています。これはインラインブロックがifブロック内のコードを時間の一部だけ実行する結果となります。ドキュメントには、「タグは非同期であり、ページの読み込みが遅くならない」と記載されています。
<script type="text/javascript" src="LOADER_URL" async="true"></script>
<script type="text/javascript">
if (typeof (OBJECT_DEFINED_IN_LOADER_URL) != "undefined") { OBJECT_DEFINED_IN_LOADER_URL.Load(false); }
</script>
ドキュメントの以前のバージョンを見ると、async属性の提案はなく、この主張はしませんでした。テクニカルライターが間違いを犯して、すべてのブラウザで適切にテストすることなく "うまくいく"と言ったのですか? IE < = 9では常に動作します。そして、非同期コードをデバッグするユーバー-楽しいですので、...多分それは彼らのために働いていた...
私の疑惑だこと:)
任意のコードを共有したい:
は、私は外部スクリプトを呼び出すために、これまでの任意のブラウザでこのコードを自分のサイトには何の問題を発見したん? –
私はltsとgtsを逃れるのを忘れて、怒っているデータエスケープモンスターが私のタグを食べました。 –
@ JaimieSirovichの場合、コードを4つのスペースでインデントするだけで、すべての文字が自動的にエスケープされます。私は今あなたのためにそれを修正しました。 – Dogbert