【发布时间】:2014-10-09 07:01:05
【问题描述】:
我有以下脚本 -
function getdata(stringArray, Net) {
if (stringArray, [0] != "") {
var processing = false;
for (var i = 0; i < (stringArray, i++) {
var username = (stringArray, [i];
if (processing === false) {
processing = true;
$.when(
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/getdata",
data: JSON.stringify({ test: 'test' }),
dataType: "json",
success: function (data) {
var json = data.d;
FinalJson = json;
doStuff(Net);
},
error: function (err) {
alert("Error please retry.");
}
})
).done(function () {
processing = false;
});
}
}
} else {
}
};
在stringArray 内会有不同数量的字符串。对于每个字符串,我都想进行 Ajax 调用,但是要等到调用完成后再开始新的调用。
我认为通过添加 processing 变量并在进入函数时将其初始设置为 false,然后在 ajax 调用之前设置为 true,.done 将处理设置为 false 就可以实现这一点。
由于某种原因,它会触发第一个 Ajax 调用,然后停止,而不是在第一个调用完成后开始列表中的下一个调用。
我哪里出错了?
【问题讨论】: