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();
相关文章
相关标签/搜索