0

複数のソースからデータをプルできるようにjQuery遅延オブジェクトを使用していますが、すべてが解決されている間表示され、すべてが解決または拒否されると非表示になる読み込みメッセージをコーディングするのに最適な方法がわかりません

現在のコード:

 jQuery.when(loadData('ws-get-shops.php', {shopId:123}),loadData('ws-get-customers.php')).then(updateResults,showError);


var loadData = function(url, data){

    var jqxhr = jQuery.ajax({
        url:url,
        data:data,
        dataType:'jsonp',
        timeout:60000
    });

    return jqxhr;
}
4

1 に答える 1

2

次のように、ajax呼び出しを開始する直前に、読み込みメッセージを追加(または表示)できます。

$('#loadingMsg').show();
jQuery.when(...).then(updateResults,showError);

そして、それを削除(または非表示)して、終了したら次のようupdateResultsshowError関数を実行します。

function updateResults(...) {
    $('$#loadingMsg').hide();
    ...
}

function showError(...) {
    $('$#loadingMsg').hide();
    ...
}

thenまた、関数が進行したときに呼び出される関数の3番目のパラメーターとして別の関数を追加しwhen、読み込みメッセージを更新してパーセンテージなどを表示することもできます。

参照:http ://api.jquery.com/deferred.then/

于 2012-06-21T03:30:19.533 に答える