我想以这种方式进行Ajax调用的堆栈:call(n-1)完成后,call(n)开始…
由于多种原因,我无法使用 async:false :
我无法以这种方式链接我的请求:
$.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子句来选择公司表上的行 任何帮助,将不胜