この質問は今では少し古いですが、私の考えを追加できると思いました。
r.jsを使用してすべてのコードを本番用に結合するという rharperに完全に同意しますが、機能を分割する場合もあります。
シングル ページ アプリの場合、すべてをまとめることは理にかなっていると思います。インページ インタラクションを持つ大規模で従来型のページ ベースの Web サイトの場合、これは非常に面倒であり、多くのユーザーに対して不要なコードを大量にロードすることになります。
私が数回使用したアプローチは
- コア モジュールを定義します (適切に動作するためにすべてのページで必要です)。これは 1 つのファイルに結合されます。
- DOM の依存関係とモジュールへのパスを理解するモジュール ローダーを作成する
- on doc.ready は、特定のページの必要に応じて拡張機能に必要なモジュール ローダーと非同期ロード モジュールをループします。
ここでの利点は、最初のページの重量を抑え、追加のスクリプトがページの読み込み後に非同期で読み込まれるため、知覚されるパフォーマンスが速くなることです。とはいえ、この方法でロードされたすべての機能は、ロードが遅い場合やエラーが発生した場合でも基本的な機能を引き続き使用できるように、プログレッシブ エンハンスメント (つまり、フォームの ajax) としてアプローチする必要があります。