async http请求服务

时间:2012-07-08 09:54:43

标签: javascript

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

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

2 个答案:

答案 0 :(得分:0)

使用,您可以利用ajaxStop事件,该事件在所有 AJAX调用完成时触发(不再有待处理的连接)。 Here is an example

$(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()回调总是最后执行。

答案 1 :(得分:0)

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

  • 如果成功完成

  • ,则成功回调
  • 如果任何请求失败,则会失败回调

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

示例:

How to chain ajax calls using jquery