异步http请求服务

async http requests servicing

本文关键字:服务 请求 http 异步      更新时间:2023-09-26

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

问题是:你有没有可以推荐的Javascript库可以等待所有报告的发送,然后才触发重定向?

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

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

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

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

示例:

如何使用jquery 链接ajax调用

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

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