jquery中的ajax并发请求

本文探讨了在前端通过多线程调用后端接口的方法,对比了同步调用与并发请求的不同效果,最终实现了对一周内每天数据的快速获取与展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、场景:

      由于业务需要,需要调合作方接口,每一次调接口传的日期不同。(接口不支持传日期数组)。然后将返回的数据进行处理显示。

二、目前解决办法:

      1、在前端一次ajax请求,到java端,然后for循环中调7(当前这一周的日期)次接口。

        结果:每一次调接口都可以有返回值,但是这个调接口的方式是同步的。7次完后,时间很长。不可取

      2、在前端调7次ajax请求,然后去调接口。

        结果:调的速度很快,并且一次都有数据返回,其实就是一个并发的ajax请求

      3、在后台采用多线程操作,前端采用一次ajax请求

       结果:其速度和在前台用并发的时间差不多

三、代码的实现如下:(前端多线程调用)

 

//发送最低价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();

转载于:https://my.oschina.net/u/731676/blog/268302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值