【发布时间】:2012-10-30 17:04:11
【问题描述】:
可能重复:
Queue AJAX calls
我有一个 id 列表:
var ids = [3738, 75995, 927, ... ]; // length is about 2000
我想用$.getJSON请求网址http://xx/ + id,比如:
ids.forEach(function(id, index){
$.getJSON('http://xx/' + id, function(data){
// store the data in another array.
});
});
但是这样会一次性发出过多的请求,让浏览器阻塞一段时间,所以我的问题是,如何限制jQuery中的并发ajax请求数?例如,我发送了 10 个请求,当每个请求得到响应时,我发送另一个请求。
【问题讨论】:
-
如果请求是异步传递的,它不会锁定浏览器。如果 $.getJSON 函数像 $.ajax 函数一样工作,那么所有调用都是异步的,你不必担心
-
@Bruno 太多异步请求也会导致浏览器崩溃
-
@Bruno 但我能感觉到浏览器显然很慢..
-
我相信你必须每十次打破你的每个循环并跟踪你已经请求的时间,直到你做你必须做的一切。但由于我不知道这是否是一个好方法,我将把它作为评论留下
-
解决办法应该是如何让后端处理多个id。
标签: javascript jquery ajax performance