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

时间:2016-09-25 04:36:02

标签: javascript jquery ajax

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

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

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

2 个答案:

答案 0 :(得分:1)

如果您默认隐藏加载程序,然后使用ajaxStart显示它,并再次隐藏ajaxStop,它应该执行您想要的操作(我认为)

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

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

答案 1 :(得分:0)

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

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" );
});

希望这有帮助:)