【发布时间】:2011-02-25 22:03:02
【问题描述】:
我可以使用 jQuery AJAX API 并进行同步调用吗?
【问题讨论】:
标签: jquery ajax synchronous
我可以使用 jQuery AJAX API 并进行同步调用吗?
【问题讨论】:
标签: jquery ajax synchronous
【讨论】:
虽然 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 调用返回,而不是异步调用以随机顺序返回。
【讨论】: