我正在使用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;
}
答案 0 :(得分:2)
您可以在开始ajax调用之前添加(或显示)加载消息,例如:
$('#loadingMsg').show();
jQuery.when(...).then(updateResults,showError);
然后在updateResults
和showError
功能完成后删除(或隐藏)它,例如:
function updateResults(...) {
$('$#loadingMsg').hide();
...
}
function showError(...) {
$('$#loadingMsg').hide();
...
}
您还可以将另一个函数作为第三个参数添加到then
函数中,该函数在when
函数取得进展时调用,并更新您的加载消息以显示百分比等。