リモートサーバーからデータを取得するアプリに共通モジュールがありget
、取得したデータを他のモジュールにエクスポートするメソッドがあります。
このモジュールの名前はMyData
次のとおりです。
define([], function(){
return function(opts) {
var data = null;
// go get data with ajax
var getData = function(){
$.ajax("getData").done(function(response){
data = response;
});
};
getData();
// return public api
if (arguments.length !== 0) {
var method = arguments[0];
switch (method) {
case "get": return data;
}
};
};
});
問題は、を使用する他のモジュールを定義するとMyData
、毎回新しいインスタンスが作成され、毎回MyData
サーバーからデータが取得されることです。
返されたデータを格納するために Web ストレージ (または他のグローバル変数) を使用できますが、それは悪い解決策のようです。
RequireJS にインスタンスを 1 回だけ作成させる方法はありますか?
PS:
私のプロジェクトでは KnockoutJS を使用しており、data
変数は ko.observable であるため、ノックアウトには私の状況に対する解決策があるのでしょうか?