23

JavaScriptファイルの読み込み/実行順序についての話や研究はあまり見かけません。JavaScript がどのように処理されているかを説明しているサイトに興味があります。特に、私が持っている場合

<script src="a.js"></script>
<script src="b.js"></script>
<script src="c.js"></script>

a.jsが最初にダウンロードされ、次にb.js、最後にc.jsがダウンロードされると思いますか、それとも同時にダウンロードされていますか? 実行はどうですか?ヘッダーのスクリプトは本文のスクリプトより優先されますか?

私がこのトピックに非常に興味を持っている主な理由は、これらのスクリプトの動的読み込みを使用する JavaScript ソフトウェアを作成していて、x が未定義 (他のスクリプトの前に読み込まれていない) などのエラーが発生することがあるためです。通常、これらのエラーは発生しません。理由がわかりません。

4

3 に答える 3

16

スクリプトは並行してダウンロードされますが、HTML に表示される順序で解析および実行され、実行されるまでページ上の他のアクション (レンダリングを含む) をブロックします。たとえば、スクリプトが DOM を介して JavaScript コードによって追加された場合、または最新バージョンの Firefox にasync 属性が存在する場合、スクリプトが非ブロックになる可能性があります。

于 2010-03-06T10:55:28.003 に答える
3

JavaScript のダウンロードを制御するのは、主にブラウザです。上記のように同じドメインからすべてをロードすると、それらは次々にロードされるため、指定した順序でロードされます。

簡単なテストとして、各ファイルで関数を指定し、リストの次のファイルから呼び出すことを試みるだけで、ロードされる順序を確認できます。

読み込みの優先順位に関しては、ほとんどの Web サイト最適化の本では、js ファイルを一番下に読み込むように指示されています。これにより、ページの読み込みが速くなり、必要な最後のリソースとして js ファイルが読み込まれます。これは慎重に行う必要があります。読み込み時にページが JavaScript に直接依存している場合、無限の js エラーが発生する可能性があります。

jquery などのライブラリは、DOM が使用可能になったときにのみ js アクションを実行できるため、js が HTML の下部に読み込まれるときに js エラーが発生しないため、これに大いに役立ちます。

もう 1 つの興味深いことは、js ファイルを適切に縮小し、最小限のファイルに固執することです。そうすることで、少数のサーバー リクエストしか実行できず、JavaScript をより少ない時間ですぐに利用できるようになります。時間。

これがお役に立てば幸いです。

于 2010-03-06T11:01:06.570 に答える