栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

何时-然后陈述如何在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,则仅获取所有剩余元素。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号