ajax 获取数据覆盖,使用异步AJAX(使用jQuery)请求加载数据时覆盖的变量

我有以下代码,可在需要时提前一个月加载有关用户付款的信息。当我等待每个月加载时,该函数可以工作,但是当多个Ajax请求正在运行时,它会失败。基本上重复的数据被添加到我的monthData数组,这意味着loadedPaymentMonth被覆盖每个函数调用。我想异步加载数据,所以有什么想法?使用异步AJAX(使用jQuery)请求加载数据时覆盖的变量

这不起作用:

var monthData=[];

function loadMonth(monthToLoad,curMonth){

$("#paymentContent").find(".loader").remove();

var monthToGet;

switch(monthToLoad){

case "Next": monthToGet=monthData.length-curMonth+1;

break;

case "Prev": monthToGet=-curMonth-1;

break;

case "This": monthToGet=currentMonthPointer-curMonth;

break;

}

var loadedPaymentMonth=new PaymentMonth();

if(monthToGet<0){

currentMonthPointer+=1;

monthData.unshift(loadedPaymentMonth);

}

else{

monthData.push(loadedPaymentMonth);

}

$.getJSON(host+"GetDataForMonth.aspx?StartMonth="+monthToGet,function(data){

loadedPaymentMonth.setMonthData(data.monthData,data.month,data.year);

if($("#paymentsContent").find(".loader").remove().length>0){

loadedPaymentMonth.createPaymentRowsForMonth();

}

}).error(function(){

$("#paymentsContent").find(".loader").remove();

});

}

这并不:

function loadMonth(monthToLoad,curMonth){

$("#paymentContent").find(".loader").remove();

var monthToGet;

switch(monthToLoad){

case "Next": monthToGet=monthData.length-curMonth+1;

break;

case "Prev": monthToGet=-curMonth-1;

break;

case "This": monthToGet=currentMonthPointer-curMonth;

break;

}

var loadedPaymentMonth=new PaymentMonth();

if(monthToGet<0){

currentMonthPointer+=1;

monthData.unshift(loadedPaymentMonth);

}

else{

monthData.push(loadedPaymentMonth);

}

$.ajax({

url:host+"GetDataForMonth.aspx?StartMonth="+monthToGet,

async:false,

dataType:"json",

success:function(data){

loadedPaymentMonth.setMonthData(data.monthData,data.month,data.year);

if($("#paymentsContent").find(".loader").remove().length>0){

loadedPaymentMonth.createPaymentRowsForMonth();

}

}

}).error(function(){

$("#paymentsContent").find(".loader").remove();

});

}

+0

VAR loadedPaymentMonth =新PaymentMonth();创建一个新的PaymentMonth对象并将其插入到数组中。每个函数调用都应该创建一个新的paymentmonth对象。因此,虽然变量名称可能相同,但引用应该是特定于其创建的函数上下文的。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值