我的document.ready()中有一些ajax调用
喜欢 :
for (j=1; j <= 7; j++){ (function(index) { $.getJSON('my.php', {id:index}, function(data) { $.each(data, function(index2, array){ ........ }); }); })(j) } //DO NOT CONTINUE UNTIL FINISH AJAX CALLS ........ MORE JQUERY CODE
我如何强制它等待,直到我们从ajax请求获得所有回叫之前不继续?
我根本不喜欢任何答案,最好的方法(自Jquery 1.5+起)是使用Deferred对象,这些是操纵异步调用的对象,可以解决:
$.when($.ajax("/page1.php"), $.ajax("/page2.php")) .then(myFunc, myFailure);
这样,myFunc会在执行2个ajax调用之后执行,如果其中一个出错,则执行myFailure。
您可以在jquery官方文档中阅读有关它的更多信息:JQuery Deferred Object
JQuery Deferred Object
如果有人看到此帖子,我会写此解决方案,可能会有所帮助。
对不起我的英语:P