jquery 循环ajax,jQuery异步AJAX调用的While循环

小编典典

最好的选择是重组代码以使用异步ajax调用,并在第一个调用完成时启动下一个调用,依此类推。这将允许页面在图像获取之间重新显示。

这也将使浏览器有机会喘口气并进行其他家务管理,而不会认为它已被锁定或挂起。

而且,使用async: 'false'是一个坏主意。我没有理由理解为什么结构正确的代码无法在此处使用异步ajax调用,并且在获取此数据时不会挂起浏览器。

您可以使用异步ajax来做到这一点,如下所示:

function getAllImages(position, maxImages) {

var imgCount = 0;

function getNextImage() {

$.ajax({

url: urlAJAX + 'scan=' + position,

method: 'GET',

async: true,

success: function(data) {

if (data.status == "success" && imgCount <= maxImages) {

++imgCount;

renderImageData(data);

getNextImage();

}

}

});

}

getNextImage();

}

// no while loop is needed

// just call getAllImages() and pass it the

// position and the maxImages you want to retrieve

getAllImages('front', 20);

而且,尽管这看起来像递归,但由于ajax调用的异步特性,它并不是真正的递归。

getNextImage()在下一个调用之前实际上已经完成,因此从技术上讲它不是递归。

2020-07-26

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值