Ajax 同时处理多个异步请求,可能出现这样的错误:只有最后一个异步请求有效,其他的都没效果。所以当我们执行完一次异步请求就应该把这次创建出来的 XMLHttpRequest 对象删除,然后再执行下一次异步请求。删除使用 delete 即可
delete xmlHttp;
xmlHttp = null;
举例说明:
在table中批量删除操作中发送了多个删除请求,如不删除jquXHR对象后会只删除选中的最后一行,删除jquXHR对象后问题解决。
<script type="text/javascript" th:inline="javascript">
function delAll() {
var a = $('#table').bootstrapTable('getSelections');
for(var i=0;i<a.length;i++){
del(a[i].id);
}
if(a.length==0){
alert("没有选中任何项","error");
return;
}
}
function del(id){
var index = layer.alert('您确定要删除吗?',{title:"确认删除",btn:['确认删除','取消'],icon: 2},function(index, layero){
$.ajax({
type : "POST",
url : 'content/delete',
data : {"id":id},
dataType : 'json',
cache : false,
compelete:function(jqXHR){
delete jquXHR;
jqXHR = null;
}
success : function(jr) {
layer.close(index);
if(jr.resultCode=="success"){
refresh();
}else{
layer.alert(jr.resultMessage);
}
}
});
},function(index, layero){
});
}
</script>