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);

然后在它们完成时在updateResultsandshowError函数中删除(或隐藏)它,例如:

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

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

您还可以添加另一个函数作为函数的第三个参数,该then函数在函数进行时调用,when并更新您的加载消息以显示百分比或其他内容。

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

于 2012-06-21T03:30:19.533 回答