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

来源:互联网 发布:java runonthread 编辑:程序博客网 时间:2024/05/16 15:42

问题描述:
在一个循环中每次循环都要发送一个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时是异步请求.

阅读全文
0 0
原创粉丝点击