0

私のモバイル Web アプリ (PhoneGap 内で実行される) が起動すると、サーバーからのデータの要求が実行されます。問題は、このリクエストの実行中に画面が黒いままになることです。この要求が起動時以外に実行されると、アプリは読み込みダイアログを表示して、何かが読み込まれているが、起動時にそのように動作していないというフィードバックをユーザーに提供します。

pageshowイベントハンドラーでリクエストを実行しています。

コードは次のとおりです。

$("#home").on("pageshow", onHomeShow);

...

function onHomeShow() {
    syncData();
}

function syncData() {
   // show loading dialog and get the data here
}

ありとあらゆる助けをいただければ幸いです。前もって感謝します。

4

2 に答える 2

1

次に、自分でajaxローダーをトリガーする必要があります。これは簡単に実行できます。何かが起こっていることをユーザーに示します。また、可能であれば、pagebeforecreate などの以前のページ イベントでメソッドを初期化します。

作業例: http://jsfiddle.net/Gajotres/Zr7Gf/

$(document).on('pagebeforecreate', '[data-role="page"]', function(){     
    setTimeout(function(){
        $.mobile.loading('show');
    },1);    
});

$(document).on('pageshow', '[data-role="page"]', function(){  
    setTimeout(function(){
        $.mobile.loading('hide');
    },300);      
});

私の例では、setTimeout または setInterval で実行されない限り、web-kit ブラウザーはローダーを表示しないため、setTimeout が必要です。このブロックを使用します。

setTimeout(function(){
    $.mobile.loading('hide');
},1);  

関数の実行が終了したとき。jQM ページ イベントについて詳しく知りたい場合は、私の他の回答をご覧ください: jQuery Mobile: document ready vs page eventsまたは in an official documentation

編集 :

忘れていました。最初のページの に置き換え[data-role="page"]idください。

于 2013-05-22T12:27:56.617 に答える