ajax异步请求高并发处理

    var ajaxConfig={targetLength:0, currentIndex:0, queueLength: 0};
    
    function queryRecEhrNum(){
        ajaxConfig.targetLength = $(".retSpan_rec").length;
        ajaxConfig.currentIndex = 0;
        ajaxConfig.queueLength = 0;
        queryAjaxChange(ajaxConfig);
    }
    function queryAjaxChange(){
        var count = browserCount();
        for(var j = 0;ajaxConfig.currentIndex < ajaxConfig.targetLength
            && ajaxConfig.queueLength < count && j < count; j++){
            queryAjaxData(ajaxConfig.currentIndex);
            ajaxConfig.currentIndex += 1;
            ajaxConfig.queueLength += 1;
        }
    }
    function nextQueryAjax(){
        if(ajaxConfig.targetLength > ajaxConfig.currentIndex){
            ajaxConfig.queueLength -= 1;
            queryAjaxChange();
        }
    }
        
    function browserCount(){
        var userAgent = navigator.userAgent;
        var isOpera = userAgent.indexOf("Opera") > -1;
        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
        var isFF = userAgent.indexOf("Firefox") > -1;
        var isSafari = userAgent.indexOf("Safari") > -1;
        if (isIE) {
           return 3;
        }
        if (isFF) {
            return 5;
        }
        if (isOpera) {
            return 3;
        }
        if (isSafari) {
            return 3;
        }
        return 3;
    }


function queryAjaxData(i){
        var $obj = $(".retSpan_rec").get(i);
        $.ajax({
            dataType:"json",
            type:"POST",
            url:"<%=path%>/cmHealth/query?now="+new Date(),
            success:function(obj){
                //alert(obj);
                nextQueryAjax();
            },
            error:function(){
                alert("请求失败");
                nextQueryAjax();
            }
        });

    }

你可能感兴趣的:(ajax异步请求高并发处理)