java开发过程中 循环ajax 变量问题

问题描述:
在一个循环中每次循环都要发送一个ajax请求,在每次ajax请求成功后调用的回调函数中要用到当前循环是第几次,那么若ajax还是异步请求方式的话,会出现问题.
如下面这个例子:

for(var i = 0;i<2;i++){
    var piid1 = ct[i].piid;
        var json="{piid:'"+piid1+"'}";
    $.ajax({
        url:"com.pvpb.visual.schedule.scheduleManager.queryRatioByPiid.biz.ext",
        type : 'POST',
        data : json,
        cache : false,
        contentType : 'text/json',
        success: function(text){
            alert(i);
        }
    });
 }

想要每次循环的时候发送ajax请求,并且ajax请求成功后打印出当前是第几次循环,那么结果会出现每次在网页上弹出的提示框都是1;
这是因为ajax是异步请求造成的,当第一个ajax发送请求的时候,循环同时也开始了下一次,在第一个ajax请求成功后这个时候i已经是1了,所以取不到之前的0,

解决方案:
将ajax请求方式转化为同步请求方式
即:将ajax方法加一个参数:async 并将他的值设置为:false;这样ajax请求就是同步请求了,若值为true时是异步请求.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值