【发布时间】:2014-04-22 14:21:35
【问题描述】:
为什么每当我将 ajax 放入 for 循环中时,它就不能很好地同步?
例如,我的代码是:
function addToUserGroupList() {
_root.qDomId('js-assignGroupArrBtn').disabled = true
for (var i = 0; i < selectedIds.length; i++) {
$.ajax({
type: "POST",
url: 'groupManage.ashx',
dataType: 'text',
data: 'type=getInfo&groupId=' + selectedIds[i],
success: function (result) {
if (result != '') {
this.groupName = result.split('&')[0];
this.groupNotes = result.split('&')[2];
userGroupList.push({ 'uid': parseInt(selectedIds[i]),
'name': this.groupName,
'adminStr': this.groupNotes
});
_root.userListObj.gourpInst.gourpTB(userGroupList);
}
},
error: function (XMLHttpRequest, status, errorThrown) {
alert('failed to add to user\'s group.');
}
});
}
_root.qDomId('js-assignGroupArrBtn').disabled = false;
selectedIds = [];
}
为什么它在 Ajax 查询之前首先调用 selectedIds = [];?
是否可以在处理 selectedIds = []; 之前完成 ajax 查询?因为它在完成这些工作之前就清除了数组。 :/
【问题讨论】:
-
任何你想在ajax调用完成后运行的代码都应该在成功回调函数中
标签: javascript jquery ajax