jquery ajax:所有请求完成后调用函数

我在页面上有两个并发的ajax调用。 我希望在两个函数完成(并且成功)时调用函数。

效率低下的解决方案:

  1. 制作ajax电话A.
  2. 如果呼叫成功,请拨打电话B.
  3. 在呼叫B成功时,调用该function

不幸的是,这打破了并发性。

我能以其他任何方式达到同样的效果吗?

看看我前几天给出的几乎相同的问题的答案 ,还看看我创建的演示与它一起(在该页面上查看源代码以查看完整代码)。 它使用JavaScript的固有function和整体性质作为一种语言比使用标志变量,恕我直言;恕不另行;

$(document).ajaxStop(function() { //do your JQuery stuff; }); 
 var isASuccessful = false; var isBSuccessful = false; function callARequest() { $.get("path/to/url", { params: list }, function() { isASuccessful = true; if (isBSuccessful) { callMeAfterAandB(); } else { callBRequest(); } }); } function callBRequest() { $.get("path/to/other/url", { params: list }, function() { isBSuccessful = true; if (isASuccessful) { callMeAfterAandB(); } else { callARequest(); } }); } function callMeAfterAandB() { // todo: something } 

设置全局变量ajax_call_A_complete设置另一个全局变量ajax_call_B_complete将这两个变量设置为false

没有同时进行ajax调用。 在成功回调两个ajax调用时,将varialbes设置为true。 我的意思是ajax调用A会将ajax_call_A_complete设置为true,而ajax调用B会将varialbe ajax_call_B_complete设置为true。

设置一个周期时间,每隔2秒检查这两个变量的值。 当两个变量都为真时,关闭您的依赖任务。