我有一个表,该表从10个不同的来源获取数据,其中一些信息非常繁琐(我存储了对象,单击表可提供更多信息)。我试图仅在所有信息加载完成后才显示该页面。我的方法是通过创建10个函数然后使用.then()将它们链接在一起来链接ajax调用。它可以正常工作,但会大大延长加载时间,因为现在每个功能都在等待另一个功能解决。我不在乎,我需要知道的是何时完成所有调用(按w / e顺序)并执行格式化功能,隐藏加载模式等。
关于如何做到这一点的任何想法?
已更新:这是代码:
$(function () {
$('#indicator').modal('show')
firstCall().then(secondCall).then(thirdCall).then(forthCall).then(fifthCall)
.then(sixthCall).then(seventhCall).then(eighthCall).then(ninthCall).then(tenthCall).then(function(){
format();
$('#indicator').modal('hide');
})})
这是单个函数调用的示例:
function secondCall() {
return $.ajax({
data: { executive: true, ex_name: 'Last_name, First_name' },
success: function (data) {
populate(arrange(data));
}
})
答案 0 :(得分:0)
我已经根据您的答复找到了答案,这让我开始思考“何时”,我意识到它具有一种有趣的工作方式。因此,由于我在每个函数中分别处理来自ajax调用的数据,因此我要做的就是:
$(function () {
$('#indicator').modal('show')
$.when(firstCall(),secondCall(),thirdCall(),forthCall(),fifthCall(),sixthCall(),
seventhCall(), eighthCall(), ninthCall(), tenthCall()).done(function(){
format();
$('#indicator').modal('hide');
})
})