我有多个复选框可供用户选择,根据选中的复选框,我需要进行jquery ajax调用。为此,我使用For循环遍历选定的元素数组,并为每个复选框发送ajax请求。每次请求耗时超过5-10分钟。在当前场景中,它同时调用所有ajax请求。
我只想在完成前面的ajax请求之后调用下一个ajax调用。
对此有什么解决方案吗?
发布于 2013-01-30 19:10:37
您可以进行递归调用。
function sendAjax(id) {
var checkbox = $('input[type=checkbox]:eq('+id+')','#formid');
if(checkbox == undefined)
return;
$.ajax({
type: 'POST',
dataType: "json",
url: 'url',
data: { },
success: function (data) {
sendAjax(id+1);
},
error: function (data) {
alert(data.responseText);
}
});
}
sendAjax(0);发布于 2013-01-30 19:07:32
在readyStateChange方法中迭代,而不是在for循环中迭代。
...
array_index++;
var data = selected_elements[array_index];
if (data) {
send_ajax_request(data);
}
}发布于 2013-01-30 19:09:56
这有点违背了ajax的全部观点。第一个"a“通常被认为是”异步“的意思,但您希望使请求同步(async = false我相信jQuery)
https://stackoverflow.com/questions/14602490
复制相似问题