上の画像はChrome Developer toolのNetworkパネルで確認出来たものなのですが、
例えば、以下のconsole.log(1)
は上の画像のContent Downloadの青いバーの始まり付近で実行されるのでしょうか?それとも、青いバーが最後まで行った後に実行されるのでしょうか?
console.log(1) // ここに1万行くらいの長いコードが仮にあるとする
なぜ、このような質問をしたかといいますと、複数のjsファイルをhtmlファイルで読み込んでおり、Networkパネルではそれらのjsファイルが期待している通りの順番に読み込まれていることが確認出来るのですが、それぞれのjsファイルの冒頭にデバッグ目的で挿入しているconsole.logの出力をchrome developer toolのconsoleで見ると、期待していない順番で実行されていることが確認出来たからです。
それによって、以下のような構成の場合、時折、jQueryの$がundefinedというエラーが発生してしまっています。
※以下のようにjsから別jsを読み込むのは仕様なので仕方ありません。。。
サンプルHTML
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="./index1.js></script> <script src="https://code.jquery.com/jquery-3.2.1.min.js" defer></script> </head> <body> </body> </html>
サンプルJavaScrip1(index1.js)
var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.src = "./index2.js"; head.appendChild(scriptForLoading);
サンプルJavaScrip2(index2.js)
$(function(){ console.log('hello world'); }