次のシナリオを検討してください。
<h1>Hello!</h1>
<script src="cool1.js"></script>
<script src="cool2.js"></script>
<h2>Goodbye!</h2>
<img src="boat.gif" alt="Big Boat">
ダウンロードされているときは、それが表示されているcool1.js
ことを意味しますが、ダウンロードして実行するまで表示されませんか?
いつダウンロードされますか (JavaScript はシングル スレッドであるため、実行が完了するまで待機する必要があります)。ダウンロードして表示するのはいつですか?Hello!
Goodbye!
cool1.js
cool2.js
cool1.js
boat.gif
ここで著者は次のように主張します。
ブラウザーは特定の時点で JavaScript を実行したり、UI をレンダリングしたりすることしかできません。ページがブラウザーにダウンロードされるときに何が起こるかを考えてみてください。ページがダウンロードされたときにレンダリングが開始され、タグが検出されました。その時点で、JavaScript が UI に影響を与える可能性があるため、ブラウザーはレンダリングを続行できなくなり、待機します。
JavaScript はそれより前のコンテンツを変更できなかったので、これはわかりませんか?
例えばcool1.js
中身<h1>
を「Good day」に変えたら?