jquery的ajax全局事件詳解—明河談jquery

jquery在ajax方面是很是強大和方便的,如下是jquery進行ajax請求時方法模板: jquery

  1. $.ajax({
  2.            type"get",
  3.            url"",
  4.                    data : {},
  5.            beforeSend : function(){
  6.  
  7.            },
  8.            success : function(data){
  9.  
  10.            },
  11.            complete : function(){
  12.  
  13.            }
  14.         });

關於$.ajax()方法的使用,不是明河寫這篇文章的目的,今天明河主要講解當進行ajax請求時整個完整的事件流程。 ajax

jquery的ajax方法的所有全局事件:

  • ajaxStart:ajax請求開始前
  • ajaxSend:ajax請求時
  • ajaxSuccess:ajax獲取數據後
  • ajaxComplete:ajax請求完成時
  • ajaxError:ajax請求發生錯誤後
  • ajaxStop:ajax請求中止後

當你使用jquery的ajax方法,無論是$.ajax()、$.get()、$.load()、$.getJSON()等都會默認觸發全局事件,只是一般不綁定全局事件,但實際上這些全局事件很是有用處。 函數

ajax方法的全局事件的用處

ajax全局事件,有個典型的應用場合:
你的頁面存在多個甚至爲數很多的ajax請求,可是這些ajax請求都有相同的消息機制。ajax請求開始前顯示一個提示框,提示「正在讀取數據「;ajax請求成功時提示框顯示「數據獲取成功」;ajax請求結束後隱藏提示框。
不使用全局事件的作法是:
給$.ajax()加上beforeSend、success、complete回調函數,在回調函數中加上處理提示框。
使用全局事件的作法是: url

  1. $(document).ajaxStart(onStart)
  2.                .ajaxComplete(onComplete)
  3.                .ajaxSuccess(onSuccess);
  4.    
  5.     function onStart(event) {
  6.         //.....
  7.     }
  8.     function onComplete(eventxhrsettings) {
  9.         //.....
  10.     }
  11.     function onSuccess(eventxhrsettings) {
  12.         //.....
  13.     }

ajax方法完整事件流

爲了更直觀的說明,明河使用Axure畫了二個流程圖,畫的很差還請見諒,O(∩_∩)O

spa

相關文章
相關標籤/搜索