我不知道,如果你的ajaxStop回調真的是被稱爲,Ajax調用後,測試它使用console.log
或乾脆提醒,就像這樣:
$("#logout").live("click",function(){
$(document).ajaxStop(function(){
alert('ajaxStop callback');
window.location.reload();
});
});
,如果它不叫,就意味着你有未完成的頁面的一個或多個Ajax請求。如你所知.ajaxStop()
註冊一個處理程序被調用時,所有的Ajax請求已經完成
您可以檢查您的瀏覽器開發者工具,尋找持續XHR請求。
最有可能你的問題是你加.ajaxStop()
觸發所有Ajax請求完成後,則由於沒有持續的Ajax調用,它將永遠不會觸發。
問題是如果您使用多個高級jQuery或其他客戶端框架組件,它可能永遠不會發生。我的意思是高級組件通常總是在後臺使用Ajax請求,而你甚至不知道。
其他可能的問題可能是ajax請求經歷了超時而沒有完成。
你必須要小心的global
的選擇,因爲:
如果$。阿賈克斯()或$ .ajaxSetup()被調用,全局選項設置爲false,則。 ajaxStop()方法不會觸發。
例如,如果你有一個Ajax調用是這樣的:
$.ajax({
//...
global: false,
// ...
});
或
$.ajaxSetup({
...
global: false,
...
});
$.ajax(...);
您.ajaxStop()方法將不會觸發。