ajax中咋样循环遍历,何时-然后陈述如何在JQuery内部循环遍历Ajax请求?

小编典典

可以按照您的要求进行操作。但是,您将请求发送到的服务器可能有一个原因限制了它们。作为从事Web开发工作并亲眼目睹DDOS,抓取以及其他滥用API的人,我建议遵循其限制。

话虽如此,这是您可以做到的。

$ .ajax实际上返回一个延迟的对象,因此您可以利用该对象。$ .when还可以接受任意数量的延迟对象。结合这两个事实可以解决您的问题。

var deferreds = [];

$.each(groupedStats, function(index, stat){

deferreds.push(

// No success handler - don't want to trigger the deferred object

$.ajax({

url: '/some/url',

data: {stat: stat},

type: 'POST'

})

);

});

// Can't pass a literal array, so use apply.

$.when.apply($, deferreds).then(function(){

// Do your success stuff

}).fail(function(){

// Probably want to catch failure

}).always(function(){

// Or use always if you want to do the same thing

// whether the call succeeds or fails

});

请注意,这不是竞争条件。尽管$ .ajax是异步的,但$ .each不是异步的,因此您的递延列表将是到达$ .when之前的总列表,并且$ .then /

$。fail / $。always仅在它们全部完成后才被触发。

编辑:我忘了添加5s拆分,但这说明了总体思路。您可能可以从这里弄清楚如何将其应用于您的问题。顺便说一句,您可以只使用array.splice(0,5)从数组中获取下5个结果。.splice是可以安全使用的;如果元素总数少于5,则仅获取所有剩余元素。

2020-07-26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值