0

外部 HTML ファイルについて考えていたときに、複数の HTML ページの関数を 1 つの JavaScript にグループ化すると、クライアント側で余分な処理が必要になることに気づきました。

基本的に、これが正しいかどうかについて考えてみたいと思います。

これが私の考えです。5 ページ分の JavaScript ファイルが 1 つあるとします。ユーザーが各ページに移動する場合、各ページについて、そのページの JavaScript だけでなく、他の 4 つのページの JavaScript もロードする必要があります。最終的な合計は、ユーザーのブラウザーが通常の約 5 倍の JavaScript をロードしたことになります。

ほとんどの人は、共通の機能によって JavaScript をグループ化していると思います。そのため、複数のページで JavaScript ファイルを使用できますが、すべてのページですべての JavaScript を使用するとは限りません。したがって、すべてのページで使用しないすべての JavaScript は、必要なく実行/ロードされます。

サブ質問があります。ページごとに JavaScript ファイルを再度アンロードする必要がないことはわかっています。JavaScript ファイルは毎回実行されますか? JavaScript はリロードされていますか? リロードとは、ブラウズがキャッシュからファイルを取得する必要があるたびに、どのようなオーバーヘッドがあるということですか?

ありがとう、グレイ

4

3 に答える 3

1

200 行のファイルがあり、それぞれ 40 行の 5 つのファイルに分割すると、行の合計数は 200 のままになります。前のページでファイル 1 ~ 4 をプルした場合、1 ~ 4 がキャッシュにあるため、ファイル 5 をプルするだけで済みます。さらに、最新のブラウザのほとんどはこれらのリクエストをスレッド化するため、1 つのファイルに対して 1 つの大きなファイルをダウンロードする代わりに、小さなファイルを 5 つのスレッドでダウンロードします。

ブラウザのオーバーヘッドは、ブラウザがそれをどのように処理するかという点でブラウザ固有のものであり、正確な実装については私の頭の上にあります。

于 2010-10-11T20:35:02.310 に答える
1

ユーザーは各ページに移動し、そのページの JavaScript だけでなく、他の 4 ページの JavaScript もロードする必要があります。

キャッシュが正しく設定されている場合は、逆のことが当てはまります。ファイルは、ユーザーがサイトにアクセスし始めたときに 1 回だけ読み込まれます。ほとんどの場合、ロードするデータの全体量は削減されます。

4 つのページすべての JavaScript コードは何らかの方法でブラウザーのメモリに読み込まれ、事前に解析されることもあります (これの正確な詳細はわかりません) が、スクリプト処理のその部分はまったく無視できます。

JS ライブラリが 4 ページごとに完全に分離されていて、非常に巨大な場合は、JS ライブラリをいくつかのチャンクに分割することを勧めします。これは、スクリプトの構造によって異なります。しかし、ほとんどの場合、外部ファイルが 1 つあるため、最初はわずかに大きなリクエストが 1 つあり、その後は何もないことが望ましい方法です。

サブ質問については、Firebug の [Net] タブをご覧ください。どのリソースがどこから読み込まれるか、およびそれらの処理にかかる時間が表示されます。

于 2010-10-11T20:35:14.187 に答える
1

すべてのページの JavaScript を 1 つのファイルにまとめたほうがよいでしょう。ファイルはキャッシュされ、連続した要求に対してブラウザーによって再度ダウンロードされることはありません。その理由は、クライアントが javascript ファイルを解析するよりも、Web リクエストを作成する方がサーバーとクライアントにとってはるかにコストがかかるためです。

最近のブラウザーは非常に高速であるため、特定のページで使用されない可能性のある追加の JavaScript をクライアントがロードする必要があることを心配する必要はありません。

サイトを高速化するには、リクエストの量を最小限に抑えることに集中する必要があります。

于 2010-10-11T20:37:27.213 に答える