6

私の 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 秒間、元の場所にとどまります。

私のスプラッシュ スクリーンはシンプルで、サイトが初めて読み込まれたときに表示されます。何か案は?

4

2 に答える 2

1

Pacejsをデュランダル ナビゲーションに統合したかったのですが、router.isNavigating のおかげで非常に簡単になりました。

ここに要点があります https://gist.github.com/volak/4aca442373b4216a52b5

于 2014-10-21T08:18:35.313 に答える