我怎么知道jquery中ajax请求何时完成

时间:2010-11-06 23:16:59

标签: jquery ajax

我有两个帖子请求我正在利用jquery和一个使用这些帖子的结果的方法。所以代码的工作原理如下:

 post1
 post2
 function

在调用函数之前,如何让代码等到post1和post2都完成?我尝试做一个while循环来查看post1和post2中的数据是否都已设置,但它挂起了浏览器。我可以同步调用它们,但这比设置两个请求并等待它们完成要慢。除了JavaScript之外,任何多线程语言都很容易解决这个问题,因为官方认为它不是多线程的,因此不支持等待一系列“线程”完成。

2 个答案:

答案 0 :(得分:2)

保留请求的计数,并在回调中修改它,然后查看是否还有剩余要运行。

var count = 2;
var callback = function () {
    count--;
    if (!count) {
        both_ajax_called_successful();
    }
};

jQuery.ajax({url: 'example1', success: callback});
jQuery.ajax({url: 'example2', success: callback});

答案 1 :(得分:1)

声明一个计数器,其值为请求数,每次收到响应时减去一个值。当值为0时,应该完成所有请求。