首頁 > web前端 > js教程 > 主體

有關JQuery中封裝的ajax講解

巴扎黑
發布: 2017-07-23 14:51:09
原創
1089 人瀏覽過

  對於頁面一些效果,驗證等,我們都是透過JavaScript語言進行完成的,但是它也就像我們的Java程式碼一樣,是最前台語言最基礎的,而jQuery則是對js程式碼進行封裝方便我們前台程式碼的編寫,而且它還有一個非常大的優勢就是解決了瀏覽器的兼容問題,這也是我們使用它非常重要的原因之一。

  而現在為了滿足使用者的需求,Ajax(Asynchronous JavaScript + XML)非同步刷新起到了無可比擬的作用,以前寫Ajax操作,總是需要我們想JDBC程式碼一樣進行幾個必備的步驟:AJAX-核心XMLHttpRequest對象,而jQuery也對Ajax非同步操作進行了封裝,這裡看一下幾種常用的方式。 

 

$.ajax,$.post, $.get, $.getJSON。

 

 

 一, $.ajax,這個是jquery對ajax封裝的最基礎步,透過使用這個函數可以完成非同步通訊的所有功能。也就是說什麼情況下我們都可以透過此方法進行非同步刷新的操作。但是它的參數較多,有的時候可能會很麻煩。來看看常用的參數:      

 var configObj = {

       method   //資料的提交方式:get和post 

       async   //是否支援非同步刷新,預設為true

       data    //需要提交的資料型別10 Json等

       success    //請求成功後的回呼函數

       error   //請求失敗後的回呼函數

# #$.ajax(configObj);//透過$.ajax函數呼叫。

 

           好,看一個實際的例子吧,看一個進行非同步刪除的例子:

"font-size:18px;">          

// 刪除  

#T ##  
  1.                     type : 

    "POST",  #/1#      url : "${pageContext. request.contextPath}/org/doDelete.action",//路徑  

  2.                #                        
  3. "org.id" : 
  4. #"${org.id} 

    ##>       },//數據,這裡使用的是Json格式進行傳輸  

  5.                      對上使用對應的結果為對應的結果來處理結果#2

                            
  6. if ( #                  $(
  7. "#tipMsg").text(

    "刪除資料成功");  

  8. ##
  9.                              tree.deleteItem(##"$##.#                     } else {  

  10.                        
  11. ##                        }  1##  

  12. ##                });  

  13. ##  

  14.  

               二,$.post,這個函數其實就是對$.ajax進行了更進一步的封裝,減少了參數,簡化了操作,但是運用的範圍更小了。 $.post簡化了資料提交方式,只能以POST方式提交。只能是異步訪問伺服器,不能同步訪問,不能進行錯誤處理。在滿足這些情況下,我們可以使用這個函數來方便我們的編程,它的主要幾個參數,像method,async等進行了默認設置,我們不可以改變的。例子不再介紹。

    url:發送請求位址。

    data:待傳送 Key/value 參數。

    callback:發送成功時回呼函數。

    type:傳回內容格式,xml, html, script, json, text,_default。

     

            三,$.get,和$.post一樣,這個函數是對get方法的提交資料進行封裝,只能使用在get提交資料解決非同步刷新的方式上,使用方式和上邊的也差不多。這裡不再示範。

     

            四, $.getJSON,這個是進一步的封裝,也就是對回傳資料型別為Json操作。裡邊有三個參數,需要我們設置,非常簡單:url,[data],[callback]。

     

            其實會了$.ajax方法,其它的都會使用了,且都是相同的,其實非常簡單。

     

            但是這裡還有一個問題,比較麻煩,就是如果頁面資料量比較大,該怎麼辦呢?在常規表單的處理中,我們使用框架Struts2可以透過網域驅動模式進行自動取得封裝,那麼透過ajax,如何進行封裝呢?這裡JQuery有一個插件,Jquery Form,透過引入此js文件,我們可以模仿表單Form來支援Struts2的網域驅動模式,進行自動資料的封裝。用法和$.ajax類似,看一下實際的例子,這裡寫一個保存用戶的前台代碼:

    1. #"font-size: 18px;">  $(function(){  

    2.         var options #            beforeSubmit : 

      function() {
    3. //處理前需要做的功能  
    4. 1 pMsg" ).text("資料正在保存,請稍候...");  

    5.                  $(

      "#insertBtn"). attr("disabled", true);  

    6.             },   success : function(result) {

      //返回成功以後需要的回呼函數  
    7.          

                          $(

      "#tipMsg
    8.                             
    9. # #                    // 控制樹型元件,並增加新的節點  ## tree = window.parent.treeFrame.tree;  #

    10.                     tree.insertNewChild("${org.id}", res      } else {  

    11.                      $("#tipM#sg).

    12. ##                }  

      #                       $("#insertBtn").attr(

      "disabled", 
    13. false);  
    14.          

      ##            clearForm : 
    15. true  
    16.       ##        $('#orgForm').ajaxForm(options); //透過Jquery.Form中的ajaxForm方法進行提交  

    17. ##    });  

    18. #  
    19.  

    20.    就不用再進行資料data的封裝處理,大大簡化了我們ajax的操作這樣非同步刷新的操作。綜上為JQuery中ajax的操作,感覺使用多了,和form表單的處理還是非常相似的,只不過實現的功能不一樣罷了。
    21.    

    22. #源自

      ##

以上是有關JQuery中封裝的ajax講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!