1

我的页面在后台发送了几个 HTTP 请求。这些请求由一些用户操作触发。一些用户操作可能会导致重定向 - 这里我们遇到了一个问题:我们希望仅在发送所有请求时才发生重定向。

问题是:是否有任何 Javascript 库可以推荐,允许等待所有报告发送并仅在之后触发重定向?

4

2 回答 2

0

使用,您可能可以利用事件,该事件在所有ajaxStopAJAX 调用完成时触发(不再有挂起的连接)。这是一个例子

$(document).ajaxStop(allDone);

function allDone() {
    console.info("Now redirecting");
}

$.getJSON('/echo/json/', function() {
    console.info("First done");
    $.getJSON('/echo/json/', function() {
        console.info("Third done");
    });
});
$.getJSON('/echo/json/', function() {
    console.info("Second done");
});

无论响应的顺序是什么,allDone()回调总是最后执行。

于 2012-07-08T10:04:09.717 回答
0

您想使用 jQuery Deferred 模式,它允许您链接(AJAX)对象和

  • 如果全部成功完成,则有成功回调

  • 如果任何请求失败,则有失败回调

http://api.jquery.com/category/deferred-object/

例子:

如何使用 jquery 链接 ajax 调用

于 2012-07-08T10:11:21.387 回答