Этот код должен делать то, что вы хотите, все в стиле jQuery. В основном это использует немного рекурсии, чтобы сделать это. Передайте параметры в функцию loadmultiples, чтобы установить, что вы хотите сделать, и ответы JSON помещаются в массив. Вы можете легко изменить его, если хотите вместо этого объединить ответы JSON в одну структуру, но я не был уверен, что это именно то, что вы хотели.
var loadmultiples = function(options) {
var settings = $.extend({
//set the url to get
url : '/response.json',
//this function is called when everything is done
callback : function() {},
//set this option to define how many loads to do
numbertodo : 10,
//these two are just used for
//storing data while we recurse,
//and keeping track of the current position
//however you can change them if you want to start
//from a different point, or have existing data
numberdone : 0,
data : []
}, options || {});
//load the json, passing up the current 'number'
//of the content to load
$.ajax({
url : settings.url,
data : { 'number' : settings.numberdone },
dataType: 'json',
success: function(result) {
//add the response to the data
settings.data.push(result);
//increment the counter of how many files have been done
settings.numberdone++;
//
if(settings.numberdone < settings.numbertoexecute) {
loadmultiples(settings);
} else {
settings.callback(settings.data);
}
}
});
}
//so now we can call it...
loadmultiples({
callback: function(data) {
//this function will get called when all the data calls have been
//completed, and the resulting data is in the data parameter
}
});