当前位置: 首页 > 面试题库 >

按顺序进行jQuery ajax调用

佴普松
2023-03-14
问题内容

我想以这种方式进行Ajax调用的堆栈:call(n-1)完成后,call(n)开始…

由于多种原因,我无法使用 async:false

  • 一些请求可能是 jsonp (最相关)
  • 我还有其他一些可能同时起作用的ajax请求。
  • 浏览器被阻止

我无法以这种方式链接我的请求:

$.post('server.php', {param:'param1'}, function(data){
        //process data
    $.post('server.php', {param:'param2'}, function(data){
        //process data
    });
});

因为请求的数量和参数是根据用户输入动态创建的。

一个小例子说明了我的问题。

您将看到服务器响应顺序是随机的,我要实现的是按顺序排列

Response to arg1
Response to arg2
Response to arg3
Response to arg4
Response to arg5
Response to arg6

任何帮助将不胜感激,谢谢。


问题答案:

好的,jQuery Ajax返回Deferred
Object
,这可以帮助您实现这一目标。

这是操作方法:

var args = ['arg1','arg2','arg3','arg4','arg5','arg6'];

deferredPost(0, 5);

function deferredPost(index, max){    
    var delay = Math.random()*3;
    if (index<max){
        return $.post('/echo/html/', {html:('Response to '+args[index]), delay:delay}, 
        function(data){
            $('#response').append(data+'<br>');
        }).then(function(){
            deferredPost(index+1, max);
        });
    } else {
        return $.post('/echo/html/', {html:('Response to '+args[index]), delay:delay}, 
        function(data){
            $('#response').append(data+'<br>');
        });
    }
}

演示

在这里,我用 那么 函数。

我还建议多读一些有关延迟对象的知识,它们可以解决几个常见问题。



 类似资料:
  • 我有一个object的数组,我希望循环访问该数组并为每个元素调用服务,但对于每个元素,我希望只有当当前调用成功时才调用下一个元素,除非阻塞其余的。 有没有在序列模式下调用可观察到的数据而不是并行的?

  • 通常,您可以有多个进程,但有时在某些操作中,我们需要确保在执行前一个进程之后执行一个进程。 我们如何在卡蒙达实现它?试图找到类似进程依赖关系的东西(因此进程在上一个进程完成后才开始),但找不到任何东西:( 我考虑在process中添加一些变量(比如),并检查指定的process是否已经完成,但也许会有更好的解决方案。

  • 我正在做一个需要调用其他任务的任务。 我尝试通过添加build.dependson clean来修复原始目标,但这似乎没有影响。 感谢任何帮助。

  • 我正在开发一些关于guvnor插件的规则。e、 g.检查 这个人就是老师。 老师是男性。 男教师为45岁或以上。 我把这三条规则分开处理。但现在我想按顺序调用它们。 比如这个人是老师。插入新的事实男性教师。然后在下一个规则中,在收到的事实中填充教师的年龄。然后检查教师的年龄。 那么我如何在drools-guvnor插件中实现这一点。 我在drools-guvnor5.5插件jboss中使用引导编辑

  • 问题内容: 因此,在数据库中,我存储了乐器名称(以及其他各种属性)。假设它是主键,并且是唯一键。 在PHP脚本中,我按其乐器类选择项,如下所示: 结果表: 这使我可以仅通过查询“萨克斯管”来选择整个乐器系列,例如“高音萨克斯管”,“中音萨克斯管”等。 在该特定示例中,结果按其ID排序(您可以假定其为auto_incremented)。更理想的是按字母顺序排序,是吗? 这工作正常,但作为音乐人,他们

  • 问题内容: 我有以下查询: 我有以下问题: USING语法与ON语法同义吗? 这些联接是从左到右评估的吗?换句话说,此查询是否说:x =公司加入了用户;y = x JOIN工作;z = y加入用户帐户; 如果对问题2的回答为“是”,那么可以安全地假设“公司”表中包含“公司ID”,“用户ID”和“工作ID”列? 我不明白在引用别名“ j”时,如何使用WHERE子句来选择公司表上的行 任何帮助,将不胜