jquery的ajax全域事件詳解

來源:互聯網
上載者:User

標籤:style   class   http   tar   color   com   

jquery在ajax方面是非常強大和方便的,以下是jquery進行ajax請求時方法樣板:

  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請求時整個完整的事件流程。

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回呼函數,在回呼函數中加上處理提示框。
使用全域事件的做法是:

  1. $(document).ajaxStart(onStart)
  2.             .ajaxComplete(onComplete)
  3.             .ajaxSuccess(onSuccess);
  4.   
  5.    function onStart(event){
  6.        //.....
  7.    }
  8.    function onComplete(event,xhr, settings){
  9.        //.....
  10.    }
  11.    function onSuccess(event,xhr, settings){
  12.        //.....
  13.    }
ajax方法完整事件流

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.