我在使用jquery .each()和.ajax()函数时遇到了问题.我使用.每()遍历5种元素和正在执行阿贾克斯()调用的每一个.我的问题是,我只希望在从每个ajax请求收到响应时继续循环.目前,所有5个元素都在循环,5个ajax请求正在进行,然后返回5个响应.
她是一个简单的例子:
$(".element").each(function() {
var id= $(this).find(('txtId').val();
$.ajax({
type: "POST",
url: "/Handlers/Handler.ashx",
data: "ID=" + id,
success: function(xml){
// I would like the each() loop to pause until this is hit,
// and some additional logic can be performed.
}
});
});
Run Code Online (Sandbox Code Playgroud)
干杯.
Pek*_*ica 10
您可以使用此async选项使每个请求同步(=在每个请求完成之前暂停脚本执行):
async 默认情况下,所有请求都是异步发送的(默认情况下设置为true).如果需要同步请求,请将此选项设置为false.跨域请求和dataType:"jsonp"请求不支持同步操作.请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作.
但是,正如文档已经说过的那样,这是非常气馁的,因为如果请求挂起或超时,它可能会冻结浏览器.
如果可能的话,最好以一种可以使用经典回调函数的方式更改代码的体系结构.
| 归档时间: |
|
| 查看次数: |
28113 次 |
| 最近记录: |