4 javascript queue ajax jquery
我正在编写一个脚本,我需要循环一组 AJAX 请求:
$('#fetchPosts').click(function(){
for(var i=0; i < link_array.length; i++) {
settings = {
// some object not relevant
}
var status = main_ajaxCall(settings, i); // ajax call
}
});
function main_ajaxCall(settings, i) {
$.ajax({
type: "POST",
url: "../model/insert.php",
data:{obj_settings: settings},
dataType: "json",
cache: false,
success: function (data) {
// some handeling here
return 0;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
return 1;
},
};
Run Code Online (Sandbox Code Playgroud)
为什么 AJAX 请求会立即触发?它似乎没有等待 model/insert.php 的响应,有没有办法强制它在触发下一个 AJAX 请求之前等待响应?
编辑1:
看来我没说清楚,抱歉,我不想等,我想排队接听电话。
我无法一次性拨打电话,这在我目前的情况下是不可能的。
如果要等待响应,请将 async 设置为 false(默认值:true)
$.ajax({
async: false,
...
Run Code Online (Sandbox Code Playgroud)
http://api.jquery.com/jQuery.ajax/
如果您不想阻塞,您可以使用 设置成功处理函数.ajaxComplete(),并且如果您想等待所有连接完成,则必须跟踪活动的 AJAX 连接 -如何知道所有 ajax 调用何时完成
最好的解决方案是将 AJAX 请求的数量减少到一个。如果您必须循环 AJAX 请求,则可以在某个地方简化逻辑(也许可以将其放在服务器中?)
编辑1:( 响应OP编辑)
如果你想对 AJAX 请求进行排队,这个问题之前已经回答过:
您还可以使用这些库(您只需谷歌即可):
| 归档时间: |
|
| 查看次数: |
20548 次 |
| 最近记录: |