jQuery同步非阻塞ajax调用

在我的Web应用程序中,我有一系列快速触发的ajax调用。 在服务器上,这些需要按照从客户端发送的顺序进行处理。

我一直在jQuery中使用async: false配置来执行此操作。 然而,这会导致GUI变得非常迟缓,同时阻止完成调用。 使用async: true GUI是响应式的,但请求并不总是按顺序处理。

是否有一种替代非阻塞方式来排队ajax请求,所以下一个请求只在前一个请求完成后发送?

注意:我没有要处理的请求的“列表”。 请求是动态生成的,因此我需要能够在生成它们时将它们填充到某种FIFO队列中,然后使用某个进程来使用队列。

它可以通过jQuery承诺轻松完成:

 function firstAjax() { return $.ajax({...}); } function secondAjax() { return $.ajax({...}); } firstAjax().pipe(secondAjax).pipe(...).done(function() { alert('all requests have successfully finished'); }); 

要么

 $.when(firstAjax()).pipe(secondAjax).pipe(...).done(function() { alert('all requests have successfully finished'); }); 

http://jsfiddle.net/zerkms/WQcVD/1/