ajax 并行,在ajax中并行进行异步和同步调用

我对异步和同步ajax调用的想法感到困惑。是否可以异步调用一个ajax调用,然后进行同步调用?

这是我的场景,

我正在尝试创建一个实时进度条,以显示没有插入数据,其中postdata()将数据插入表中,而getprocess()函数返回当前没有插入的数据以显示在进度条中。

function getprogress(data){

console.log(data);

$.ajax({

method: 'POST',

url: '<?php echo base_url()?>setting/processoffline/getprogressdata',

data:{ table:data },

dataType: 'json',

async: false,

success: function(val) {

var off=parseFloat(Number(val.dataoffline),10);

var on=parseFloat(Number(val.dataonline),10);

var percent=Math.round((off/on)*100);

// $('#'+data+'success').addClass('hidden');

console.log('offline- '+off);

console.log('online- '+on);

$('#'+data+'progressbar').css('width',percent+"%");

$('#'+data+'progressbar').html(percent+"%" + off+' out of '+on );

if(percent=='100'){

console.log(percent);

// $('#'+data+'progressbox').addClass('hidden');

$('#'+data+'success').removeClass('hidden');

$('.download').removeAttr('disabled','disabled');

// clearTimeout();

}

console.log(postComplete);

if (!postComplete)

setTimeout( function() { getprogress(data); }, 1500);

} ,

error: function() {

if (!postComplete){

setTimeout( function() { getprogress(data); }, 1500);

}

}

});

}

function postdata(data)

{

// if(!data)

$.ajax({

method: 'POST',

url: '<?php echo base_url()?>setting/processoffline/processdata',

data:{ master_table:data },

dataType: 'html',

success: function() {

postComplete = true;

},

error: function() {

postComplete = true;

}

});

}

现在我在这里调用这些函数

$(this).parent('td').parent('tr').siblings('tr').children('td').find('input:checked').each(function(){

data=$(this).attr('id');

postdata(data);

$('#'+data+'success').addClass('hidden');

$('#'+data+'progressbox').removeClass('hidden');

i++;

getprogress(data);

if(!postComplete)

setTimeout( function() { getprogress(data);}, 2);

这里postdata()函数在循环中多次被异步调用我的情况是,因为循环可以是无限数量,这可以启动很多可以挂起我的系统的并行进程。我需要为postdata启动下一个循环()只有当前面的进程结束时.Function postdata()对php函数进行ajax调用,这需要很多时间。所以我的技术是异步定义postdata()函数,这样我可以并行调用getprogress()函数但是(我不知道是否可能)我想同步调用getprocess ajax调用,这样循环将等到getprogress返回的值结束。这样我只有在早期进程结束时才能在ajax调用中启动一个新进程。 / p>

我想知道它是否有可能,如果不能,我怎么能解决这个问题。对于糟糕的英语和如果不清楚请注释,我坚持3-4天。

提前致谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值