Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个Ajax调用侦听器_Javascript_Jquery_Ajax_Asynchronous - Fatal编程技术网

Javascript 多个Ajax调用侦听器

Javascript 多个Ajax调用侦听器,javascript,jquery,ajax,asynchronous,Javascript,Jquery,Ajax,Asynchronous,我有一个从10个不同来源获取数据的表,其中一些信息非常繁重(我存储对象,单击表提供更多信息)。我试图只在加载完所有信息后才显示页面。我的方法是通过创建10个函数来链接ajax调用,然后使用.then()将它们链接在一起。它工作正常,但它使加载时间大大延长,因为现在每个函数都在等待另一个函数的解析。我不在乎这些,我只需要知道所有调用何时完成(按w/e顺序),并执行格式化函数、隐藏加载模式等 关于如何做到这一点有什么想法吗 更新:以下是代码: $(function () { $('#indicato

我有一个从10个不同来源获取数据的表,其中一些信息非常繁重(我存储对象,单击表提供更多信息)。我试图只在加载完所有信息后才显示页面。我的方法是通过创建10个函数来链接ajax调用,然后使用.then()将它们链接在一起。它工作正常,但它使加载时间大大延长,因为现在每个函数都在等待另一个函数的解析。我不在乎这些,我只需要知道所有调用何时完成(按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));
    }
})

根据你的回答,我找到了一个答案,它让我想到了“何时”,我意识到它有一种有趣的工作方式。因此,由于我在每个函数中分别处理来自ajax调用的数据,所以我所要做的就是:

$(function () {
  $('#indicator').modal('show')
    $.when(firstCall(),secondCall(),thirdCall(),forthCall(),fifthCall(),sixthCall(), 
         seventhCall(), eighthCall(), ninthCall(), tenthCall()).done(function(){
            format();
            $('#indicator').modal('hide');
         })
})

我们可以看看你的代码吗?也许你可以让你的桌子更复杂、更智能。您可以为表实现单独的填充,并在未响应的单元格中显示小进度微调器。每个请求将填充特定的单元格。您只需为每个请求实现回调,并在response.jQuery中运行特定的filler,因为每个调用都在等待另一个完成,这会增加加载所有内容所需的时间。也许可以尝试跟踪对象和用户setInterval中哪些已经完成,以确定所有ajax调用何时完成。遗憾的是,我不得不使用这种方法,因为正在使用的对象必须可以立即使用,不允许再加载。我在考虑在每次调用后创建标志,也许有一个函数可以在所有10个标志都设置好后执行某些操作,唯一的问题是这个函数如何以及何时运行