如何检查ajax调用是否已完成以及何时完成

How to check if ajax cal was made and when it was completed

本文关键字:已完成 是否 何时完 调用 ajax 何检查 检查      更新时间:2023-09-26

我有以下代码来隐藏页面加载器图像,当页面完全加载(包括任何挂起的ajax调用)。

$('document').ajaxStop(function() {
    // place code to be executed on completion of last outstanding ajax call here
    $(".se-pre-con").fadeOut("slow");
  });

工作正常。但是,网站上的一些页面没有ajax调用,因此该代码不能在那里运行。
所以我需要一个代码来首先检查当前页面上是否有任何ajax调用,如果有,然后检查它是否完成,然后运行这段代码来隐藏加载图像。

如果您默认隐藏加载器,然后使用ajaxStart显示它,并在ajaxStop上再次隐藏,它应该做您想要的(我认为)

.se-pre-con { display : none; }

$(document).ajaxStart(function() {
    $(".se-pre-con").show();
}).ajaxStop(function() {
    $(".se-pre-con").fadeOut("slow");
});

是的,你可以像这样使用always方法

var jqxhr = $.ajax( "example.php" )
// if success
.done(function() {
  alert( "success" );
})
// if failed
.fail(function() {
  alert( "error" );
})
// or use always for completed request
.always(function() {
  alert( "complete" );
});

希望有帮助