2016-09-25 105 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"); 
});