私の durandal ベースの SPA は、viewmodel の activate 関数でさまざまな非同期 ajax 呼び出しを行います。activate 関数から Q を使用して promise を返しています。
function activate(){
return Q.fcall(['getPersons', 'getAgenda']);
}
function getPersons(){
var defer = Q.defer();
$.ajax({
//omitting most of the settings
success: function(data){
defer.resolve(data);
},
error: function(xhr, status){
defer.reject(status);
}
});
return defer.promise;
}
同様のコードが getAgenda 関数にも存在します。これですべて問題なく動作し、画面が遷移します。問題は、getAgenda に時間がかかることです (2 ~ 3 秒)。スプラッシュ スクリーンは表示されず、画面は遷移する前の 2 ~ 3 秒間、元の場所にとどまります。
私のスプラッシュ スクリーンはシンプルで、サイトが初めて読み込まれたときに表示されます。何か案は?