2016-09-25 74 views
0

当页面完全加载(包括任何挂起的ajax调用)时,我有以下代码隐藏页面加载器图像。如何检查ajax cal是否已完成,以及何时完成

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

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

+0

使用调试工具,如fiddler.which跟踪所有的请求和响应http://www.telerik.com/fiddler – Aravind

+0

@Aravind:保留曲目是不是这里的问题 – sohal07

+0

使用该工具和U就会知道,如果该页面具有Ajax Cal,并且与该Ajax调用对应的状态代码将告诉您它是否完成。通过它,你将知道哪个页面有Ajax调用,然后使用开发人员工具和F10来解析代码中的每一行,并找到调用的地方。最后使用此链接http://api.jquery.com/ajaxcomplete/完成您的任务。 – Aravind

回答

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

希望这种方法帮助:)

+0

卜某些页面出现高达5个独立的Ajax调用 – sohal07

1

如果默认隐藏加载,然后用ajaxStart表现出来,并在ajaxStop再次隐藏,它应该做你想做的(我认为)

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

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