2012-01-28 67 views

回答

18

你可以使用$.ajaxSetup()方法設置將適用於整個頁面全局AJAX性能:

$.ajaxSetup({ 
    beforeSend: function() { 
     // show progress spinner 
    }, 
    complete: function() { 
     // hide progress spinner 
    } 
}); 
+0

完成!謝謝。 – LordZardeck 2012-01-28 07:58:28

+1

它會抓住那些不使用jQeury或那不可能的東西嗎? – rain01 2013-05-09 11:53:06

+1

@ rain01,不,這隻會捕獲jQuery AJAX請求。 – 2013-05-09 12:09:31

2

嘗試使用jQuery的ajaxStart事件

+1

我可能會用'ajaxSend',而不是因爲它是觸發所有的Ajax請求(VS僅一日一用'ajaxStart')。另請參閱http://stackoverflow.com/questions/3735877/whats-the-difference-between-1-ajaxstart-and-ajaxsend-and-2-ajaxstop-and – 2014-09-11 08:29:34

+0

另一個說明:@LordZardeck可能要刪除「loading ...「進度條,當所有的Ajax請求都成功完成或有錯誤時。這可以使用'.ajaxError()'和'.ajaxStop()' – 2014-09-11 08:34:40

4

出於某種原因或其他$.ajaxSetup()不工作我。通過docs雖然閱讀後,我發現:

注:全局回調函數應與各自 全局AJAX事件處理方法,.ajaxStart(),.ajaxStop(), .ajaxComplete(設置),.ajaxError(),.ajaxSuccess(),.ajaxSend() - 而不是 在$ .ajaxSetup()的選項對象中。

嘗試$.ajaxStart()$.ajaxComplete()代替:

$(document).ajaxStart(function() { 
    console.log('Request Initiated'); 
}); 
$(document).ajaxComplete(function() { 
    console.log('Request Complete'); 
});