如果使用的是jQuery,则可以使用其.queue方法将ajax调用排队,然后按顺序执行。要运行多个序列,可以将初始出队包装在循环中。
function add_api_call_to_queue(qname, api_url) { $(document).queue(qname, function() { $.ajax({ type : 'GET', async : true, url : api_url, dataType : 'json', success : function(data, textStatus, jqXHR) { // activate the next ajax call when this one finishes $(document).dequeue(qname); } }); });}$(document).ready(function() { var queue_name = 'a_queue'; var concurrent_calls = 2; // add first AJAX call to queue add_api_call_to_queue(queue_name, '/example/api/books'); // add second AJAX call to queue add_api_call_to_queue(queue_name, '/example/api/dvds'); // add third AJAX call to queue add_api_call_to_queue(queue_name, '/example/api/shoes'); // start the AJAX queue for (i=0;i<concurrent_calls;i++) { $(document).dequeue(queue_name); }})


