YSlow とGoogleの Page Speed の両方のアドオンは、スクリプト(およびスタイル)ファイルをそれぞれ1つのファイルに結合して、HTTPリクエストの数を減らすことを推奨しています。この点は、スクリプトファイルがサイト全体で一貫しているが、サイト全体で異なる要件を持つWebアプリケーションの場合です。
私がそれを見る方法には、いくつかのオプションがあります:
サイト全体で使用されるすべてのファイルを結合すると、すべてのページが同じ結合ファイルを取得します-不利な点は、スクリプトを乱雑にする未使用のコンテンツです(より重い最初のロード(コンポーネントスクリプトが変更されたときにもリロードします))
ページごとにファイルを結合します-欠点は、異なる要件を持つ各ページが異なる結合ファイルを取得することです(ページタイプごとに重い最初のロード)
推奨事項の厳密な「1ファイルのみ」の解釈を無視し、必要に応じてページを複数のファイルにロードします。キャッシュは一般的なケースでHTTPリクエストの数を無効にします-欠点は各ページのHTTPリクエストの数です
考え?
オプション2は最悪です。つまり、必要なJSスクリプトの異なる組み合わせを持つすべてのページがHTTPリクエストになります。パフォーマンスが向上しますmuch悪化します。
オプション1が最適です。最終的には、ほとんどのユーザーがWebサイトのほとんどのページ「タイプ」にアクセスするため、めったにアクセスされないページで必要な大きなJSファイルを除き、すべてを1つのファイルにまとめることは依然として有利です。
最初のページヒットは異なるファイルの場合よりも遅くなる可能性がありますが、他のすべてのページヒットはキャッシュされたグローバルJSを使用するため、実行する価値はあります。
ただし、1つのヒント。まだマージしていない場合は、自動的にマージしてください!
通常、「グローバルJavascript」(jQueryと一般的なプラグイン)を1つのファイルに結合し、必要に応じて追加のプラグインを個別のファイルとして提供します。
たとえば、多くのページを実行している1つのサイトにはデータテーブルがあり、jQuery、DataTables、SuperFish(メニュー用)を備えたglobal.js
があります。サイトには「ライトボックス」を使用する2つのページがあるため、これらの2つのページ用に個別のスクリプトがあります。
CSSについては、サイト全体に対して単一のファイルを提供し、CSSを可能な限り一般的にするようにします。ほとんどのページには、いくつかの固有のCSS要素しかありません。
できるだけ少ないファイルを使用することをお勧めしますが、ページの読み込みに必要な機能と、非同期読み込みによって延期できる機能とに分かれている場合があります。
十分なJSを2番目のカテゴリーにプッシュできる場合、ページの知覚される初期ロード速度を改善して、ユーザーのエクスペリエンスを向上させることができます。