使用jquery进行同步调用

时间:2010-05-31 09:18:08

标签: jquery ajax synchronous

我可以使用jQuery AJAX API并进行同步调用吗?

2 个答案:

答案 0 :(得分:14)

就像奥巴马会说:是的你可以!

jQuery .ajax()

设置

async = false
<。>在.ajax()处理程序中就可以了。

答案 1 :(得分:3)

虽然jQuery可以通过设置synch:false属性来进行同步AJAX调用,但这会导致浏览器挂起直到AJAX完成。使用像Frame.js这样的流量控制库,您可以在不占用浏览器的情况下进行同步调用:

$.each(ajaxObjects, function(i, ajaxCall){
    Frame(function(next)){ // declare the callback next here

        ajaxCall.complete = function(data){
            // do something with the data
            next(); // go to the next ajax call
        }
        $.ajax(ajaxCall);

    });
}
Frame.init();

这一系列的AJAX调用将按顺序进行,每个等待前一个完成,而不会使浏览器挂起。还有一个额外的好处,即数据以可预测的顺序从ajax调用返回,而不是以随机顺序返回的异步调用。