I would probably use the ajaxComplete event. You'll have to have your own logic for knowing when the series starts and finishes, but that presumably will come out of your application logic anyway.
Here's a trivial example (live copy):
jQuery(function($) {
var count = 0;
display("Hooking up handler");
$(document.body).ajaxComplete(function(event, xhr, options) {
++count;
display("Got a completion, new counter value = " + count);
});
display("Doing three ajax requests.");
$.ajax({
url: "http://jsbin.com/aciyu4"
});
$.ajax({
url: "http://jsbin.com/aciyu4"
});
$.ajax({
url: "http://jsbin.com/aciyu4"
});
function display(msg) {
$("<p/>").html(msg).appendTo(document.body);
}
});
In that example, I'm keeping track of how many requests have completed using a count variable over which the registered handler is a closure (and so has access to it).