jQuery同步非阻塞ajax调用

bra*_*ido 5 ajax jquery asynchronous nonblocking

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

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

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

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

zer*_*kms 6

使用jQuery承诺可以轻松完成:

function firstAjax() {
    return $.ajax({...});
}

function secondAjax() {
    return $.ajax({...});
}

firstAjax().pipe(secondAjax).pipe(...).done(function() {
    alert('all requests have successfully finished');
});
Run Code Online (Sandbox Code Playgroud)

要么

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

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