requireJS は JS モジュール化をサポートしており、同じ HTML/JSP ページに異なるバージョンのモジュールをロードすることもできます。この機能は素晴らしいものです。複数のバージョンの jquery をロードする方法を見てみましょう。 HTML ページで、data-main 属性エントリ ファイルが main.js であり、ファイルが格納されるディレクトリ構造が次のとおりであるとします。 /
demo1.js
demo2.js
libs/
js このマルチコンテキストのアプローチにより、複数バージョンのモジュールの共存を実装できます。しかし、これは次の 2 つの問題にもつながります:
1. 異なるコンテキストでロードされたモジュールが同じで、同じバージョン (同じ js ファイル) である場合はどうなりますか? この js ファイルは複数回ダウンロードされますか?
結論: httpwatch の観察を通じて、
異なるコンテキストが同じ js ファイルをロードする場合、この js ファイルは複数回ダウンロードされることになります。明らかにこれは無駄です。
2. 両方のコンテキストに jquery-1.10.1 バージョンが必要な場合、js のみが確実にダウンロードされるようにするにはどうすればよいでしょうか?
結論: 共通のモジュールと各コンテキストを格納するために、親クラスと同様のコンテキストを定義できます。にアクセスできます。
//创建1个contextvar reqOne = requirejs.config({ baseUrl: 'scripts/libs/', context:"context1", paths:{ jquery: 'jquery-1.10.2' }}); reqOne(['jquery'], function($) { console.log("v1=" + $().jquery); });//创建1个context var reqTwo = requirejs.config({ baseUrl: 'scripts/libs/', context:"context2", paths:{ jquery: 'jquery-2.1.1' }}); reqTwo(['require','jquery'], function(require,$) { console.log("v1=" + $().jquery); });