是否可以检测网页上所有异步任务的完成情况

Is it possible to detect the finish of all asynchronous tasks on a web page?

本文关键字:任务 异步 情况 检测 网页 是否      更新时间:2023-09-26

这一切都在标题中。我需要知道所有异步任务何时在我的网页上完成。可以使用一种自定义侦听器或其他东西吗?

没有可靠且标准的方法来检测所有异步任务的完成情况。如果您在网页中使用 javascript,则脚本可以随时根据其功能运行新的异步请求。

如果您使用的是jQuery并且所有请求都是由您发起的,请查看此答案。

你可以使用这样的东西:

var ajaxfinished = 0;
var totalAjax = 5; //Total of ajax functions you have
$( document ).ajaxComplete(function() { //Listener for a complete Ajax function
  ajaxFinished += 1;
  if (ajaxFinished == totalAjax) { //here you know that all tasks are finish
      //run your code
  }
});

看看这里 .ajaxComplete,这样做的主要缺点是,如果你对 totalAjax 非常小心。