我的页面在后台发送了几个 HTTP 请求。这些请求由一些用户操作触发。一些用户操作可能会导致重定向 - 这里我们遇到了一个问题:我们希望仅在发送所有请求时才发生重定向。
问题是:是否有任何 Javascript 库可以推荐,允许等待所有报告发送并仅在之后触发重定向?
我的页面在后台发送了几个 HTTP 请求。这些请求由一些用户操作触发。一些用户操作可能会导致重定向 - 这里我们遇到了一个问题:我们希望仅在发送所有请求时才发生重定向。
问题是:是否有任何 Javascript 库可以推荐,允许等待所有报告发送并仅在之后触发重定向?
使用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()
回调总是最后执行。
您想使用 jQuery Deferred 模式,它允许您链接(AJAX)对象和
如果全部成功完成,则有成功回调
如果任何请求失败,则有失败回调
http://api.jquery.com/category/deferred-object/
例子: