さて、私は妥当なサイズのプロジェクトを持っています。そこでは、jqueryバックボーンと他のいくつかのjavascriptライブラリを使用しています。javascriptライブラリ用に1つのファイルを、カスタムコード用に別のファイルを用意する必要があるかどうか疑問に思いました。または、個別のjavascriptファイルの束。
7 に答える
一般に、HTTPリクエストを少なくすることをお勧めします。したがって、ファイルの数を合理的な範囲で減らす必要があります。
私の個人的な好みは、JavaScriptファイルの3つの「グループ」を持つことです。
- コアファイル。ほぼすべての場所で使用される関数や、その他の便利なページ初期化機能が含まれています。
- モジュールファイル。いくつかの場所で使用されているが、どこでも使用されていないコードが含まれています。ドロップインして追加機能を提供できます。たとえば、日付入力を処理するスクリプトがある場合は、それをモジュールファイルとして含め、日付入力のあるページに追加できます。
- ページ固有のファイル。これらのファイルには、1か所でのみ使用されるコードが含まれています。それらがページ自体の一部としてではなく別個のファイルとして追加される唯一の理由は、キャッシュの理由によるものです。
1つの大きなファイル。コードが本番環境に移行するときに縮小し、大きい場合は圧縮する必要があります。ページのパフォーマンスを向上させるために、サーバーへのリクエストをできるだけ少なくしたい
それを分離するのが最善ですが、熱心になりすぎないでください。そうすれば、後でライブラリコードを再利用できます。また、物事がより整理された状態に保たれるため、誰もが別々のファイルで作業することを好みます。
とはいえ、すべてを簡単にキャッシュできるように、ユーザーに1つの圧縮ファイルを提供することも最適です。これにより、ページリクエストの数も減ります。たとえば、Rails3はアセットパイプラインでこれを自動的に実行します。お気に入りのコンプレッサーを実行するスクリプトを書くことができます。しかし、これのためにコードの可読性を犠牲にするべきではありません-あなたはあなたのケーキを持ってそれを食べることもできます!
1つの大きなファイルまたは2つのファイル:1つは小さいファイル、もう1つは大きいファイル。明確にするために、開発中は別々のファイルを用意することをお勧めします–おそらくrequireJSのようなものを使用します。ただし、デプロイするときは、HTTPレイテンシとリクエストを減らすために、すべてを1つのファイルに圧縮することをお勧めします。
私は2つのファイルについて言及しました。場合によっては、「ブートストラップ」操作を処理する1つの小さなファイルがあればよい場合があります。その間、「大きなファイル」は、特にそれが本当に大きい場合はダウンロードされます。ユーザーはまだファイルをキャッシュしていないため、これは特に最初のアクセスに役立ちます。
原則として、サーバーに対して行われるリクエストの数を減らすために、できるだけ少なくします。
提案されているように、小さいファイルで作業するのは良いことですが、本番コードの場合、ビルドプロセスに最適化を含める必要があります。その最適化の一部は、ブラウザによる呼び出しを減らすために単一のjsファイルに結合することにより、ファイルサイズとネットワークトラフィックの最適化を最小化することです。
アプリケーションのサイズによって異なります。ただし、通常は、保守性と再利用性を高めるために、JavaScriptファイルを適切にグループ化することをお勧めします。
RequireJSのようなJSモジュールローダーを使用してJavaScriptをロードできます。少なくともファイルは整理されます。これらのファイルをユーザーのブラウザーにキャッシュして、ユーザーが1回だけダウンロードできるようにすることで、サーバーのパフォーマンスを向上させることができます。