javascript - jQuery请求一个url列表同时限制并发请求的最大数量

标签 javascript jquery ajax performance

<分区>

Possible Duplicate:
Queue AJAX calls

我有一个 id 列表:

var ids = [3738, 75995, 927, ... ];//长度约为 2000

我想用 $.getJSON 请求 url http://xx/+ id,例如:

ids.forEach(function(id, index){
    $.getJSON('http://xx/' + id, function(data){
        // store the data in another array.
    });
});

但是,这样会一次请求太多,导致浏览器阻塞一段时间,所以我的问题是,如何限制jQuery中并发ajax请求的数量?例如,我发送了 10 个请求,当每个请求都得到响应时,我发送了另一个请求。

最佳答案

shift()pop() 在您开始请求时从数组中删除 ID。首先发出 10 个请求。然后在 ajax 调用的 complete() 处理程序中,检查数组长度。如果它大于 0,setTimeout 几百毫秒(以释放浏览器一点),然后移动或弹出另一个 ID 并触发另一个请求。

关于javascript - jQuery请求一个url列表同时限制并发请求的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144144/

相关文章:

jquery - 使用 jQuery.load 时防止 div 折叠

javascript - 通过 GCM 在渐进式网络应用程序中推送通知

javascript - Ajax 请求未在 IE 中发送。 11

javascript - Workers 无法在 WPF 项目中嵌入的 HTML 页面中工作

javascript - React 按钮组件 onClick() 在页面加载时触发,而不是 onclick

javascript - 如何使用 jQuery 检索多个 anchor URL?

jquery - 避免使用 jQuery 突出显示所有行和列

javascript - jQuery 自定义滚动条不起作用

javascript - 尝试制作 CSS3 对 Angular 线滑动动画,但没有按预期工作

c# - Ajax 完整功能问题