1

これが私の言いたいことです。次の例を見てください。

<!doctype html>
<html>
  <head><title>test page</title></head>
  <body>
     Will this always be the first thing on the screen every time?
     <script>document.write('Will this be 2nd?');</script>
     <script async src="http://foo.bar/baz.js"></script>
  </body>
</html>

...baz.js以下で構成されています。

var s = document.createElement('span');
s.innerHTML = 'Is there any possibility that this will be the first thing to appear on the screen whatsoever, like it\'s being loaded over a really badass fiber optic connection?';
document.body.appendChild(s);

私のスクリプトは、body追加するページに既に存在する要素に依存しているため、質問しますが、マークアップがページのどこに挿入されるかを制御していないため、それが本文のどこかにあることがわかっています。 事前にダウンロードを開始する必要があるものがあるかどうかを確認するために、主要な解析ラウンドを開始する前に、マークアップとスクリプトをスキャンするブラウザーはありますか?asyncdefer

質問が十分に明確でない場合はお知らせください。明確にするよう努めます。

ありがとう

4

1 に答える 1

1

要素は、scriptパーサーが到達するまで処理されません。

あなたの"Will this be 2nd?"スクリプトは常に他のスクリプトの前に実行されます。

どちらの場合も、信頼できますdocument.body

asyncおよびの完全な詳細については、さらにお読みdeferください。

于 2012-12-14T06:17:52.963 に答える