Ajax(jquery) 同时处理多个异步请求

2016-11-24  本文已影响355人  坏人_李哈哈

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>

参考资料:

jQuery.ajax()中文文档(比w3cschool详细很多)
php用法

上一篇 下一篇

猜你喜欢

热点阅读