私は、リモートサーバーからデータを取得し、取得したデータを他のモジュールにエクスポートするための共通のモジュールをアプリケーションに持っています。RequireJSを使用してモジュールを一度だけロードして実行する方法
このモジュールの名前は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
の新しいインスタンスを作成しますサーバーごとに。
返されたデータを格納するためにウェブストレージ(または他のグローバル変数)を使用できますが、それは悪い解決策のようです。
RequireJSにインスタンスを1回だけ作成させる方法はありますか?
P.S:私のプロジェクト私のユーザーKnockoutJSで 、およびdata
変数はko.observable、ので、多分ノックアウトが私の状況のためのソリューションを持っているのですか?
ありがとう、これは非常に役に立ちました。 – IgalSt