明確にするために編集:
パフォーマンスに関しては(これはまだ乱暴な用語ですが、私は知っています)、どちらが優れているのでしょうか? RequireJS を介して、jQuery のローカル バージョンまたは CDN バージョンをロードしますか?
記録として、RequireJS のオンライン ドキュメントには、CDN の使用を思いとどまらせるような一節が含まれていますが、その意味について 100% 確信があるわけではありません。
ビルドで CDN の読み込みと shim 構成を混在させないでください。シナリオ例: CDN から jQuery をロードしますが、shim 構成を使用して、jQuery に依存するバックボーンのストック バージョンのようなものをロードします。ビルドを行うときは、必ずビルド ファイルに jQuery をインライン化し、CDN からロードしないでください。それ以外の場合、バックボーンはビルドされたファイルにインライン化され、CDN で読み込まれた jQuery が読み込まれる前に実行されます。これは、シム構成が依存関係がロードされるまでファイルのロードを遅らせるだけで、定義の自動ラップを行わないためです。ビルド後、依存関係は既にインライン化されており、shim 構成は、define() されていないコードの実行を後まで遅らせることはできません。定義()' d モジュールは、依存関係が読み込まれるまで実行されない define factory 関数でソースを適切にラップするため、ビルド後に CDN で読み込まれたコードで動作します。教訓: shim config は、非モジュラー コード、レガシー コードの応急処置です。define() されたモジュールの方が優れています。
理論的には、CDN jQuery ファイルを使用すると、さらに 1 つの HTTP リクエストが発生します (r.js を使用して他の JS ファイルとマージすることはできません)。訪問しました。
ただし、Google で調べた情報が正しかったとしても、ローカルの jQuery コピーを r.js に提供する必要があります。結果として得られる縮小された JS ファイルには、依存関係の一貫性を確保するために jQuery モジュールのコピーが含まれている必要があるからです。その結果、ローカルと CDN の両方で jQuery が読み込まれます。(私はこの部分を正しく理解したと思いますか?)
では、どの方法が良いでしょうか?