jquery中的ajax併發請求

1、場景:

      因爲業務須要,須要調合做方接口,每一次調接口傳的日期不一樣。(接口不支持傳日期數組)。而後將返回的數據進行處理顯示。前端

2、目前解決辦法:

      一、在前端一次ajax請求,到java端,而後for循環中調7(當前這一週的日期)次接口。java

        結果:每一次調接口均可以有返回值,可是這個調接口的方式是同步的。7次完後,時間很長。不可取ajax

      二、在前端調7次ajax請求,而後去調接口。數組

        結果:調的速度很快,而且一次都有數據返回,其實就是一個併發的ajax請求多線程

      三、在後臺採用多線程操做,前端採用一次ajax請求併發

       結果:其速度和在前臺用併發的時間差很少app

3、代碼的實現以下:(前端多線程調用)

 

//發送最低價ajax請求
    function getlowerPrice(date){
        console.log(date);
        //在這裏處理日期下面的最低價
        $.ajax({
            url:basepath+"/tpticket/getlowesttprice",
            type:"POST",
            data:"departcity="+$("#departcity").val()+"&arrivecity="+$("#arrivecity").val()+"&date="+date+ "&passengertype=" + $("#passengertype").val(),
            dataType:"JSON",
            success: function(data){
                console.log(data);
                var dataLength = eval(data.lowerprice).length;
                for(var i=0;i<dataLength;i++){
                    var strsspan = "<span>" + data.lowerprice[i].price+"</span>";
                    //$(".searchDate li[date='" +data.lowerprice[i].date+ "']").appendTo(strsspan);
                    $(".searchDate li[date='" +data.lowerprice[i].date+ "']").append(strsspan);
                     
                    //console.log($(".searchDate>li").attr("data"));
                }
            }
        });
    }
 
    // 獲得前N天或後N天的日期
    function showdate(n) {
        var d = new Date($("#date").val());
            var uom = new Date(d- 0 + n * 86400000);
            uom = uom.getFullYear() + "-" + (uom.getMonth() + 1)
                    + "-" + uom.getDate();
            return uom;
    } 
     
    function makeWeekDate(){
        for(var i=-3;i<4;i++){
            getlowerPrice(showdate(i));
        }
    }
 
    makeWeekDate();