jQuery-jquery封裝的ajax使用總結

對於頁面一些效果,驗證等,我們都是通過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

       url   //數據的提交路勁

       async   //是否支持異步刷新,默認是true

       data    //需要提交的數據

       dataType   //服務器返回數據的類型,例如xml,String,Json等

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

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

    }

$.ajax(configObj);//通過$.ajax函數進行調用。

 
<span style="font-size:18px;">          // 刪除  
                $.ajax({  
                    type : "POST",  //提交方式  
                    url : "${pageContext.request.contextPath}/org/doDelete.action",//路徑  
                    data : {  
                        "org.id" : "${org.id}"  
                    },//數據,這裏使用的是Json格式進行傳輸  
                    success : function(result) {//返回數據根據結果進行相應的處理  
                        if ( result.success ) {  
                            $("#tipMsg").text("刪除數據成功");  
                            tree.deleteItem("${org.id}", true);  
                        } else {  
                            $("#tipMsg").text("刪除數據失敗");  
                        }  
                    }  
                });  
</span> 

二,$.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類似,看一下實際

<span style="font-size:18px;">  $(function(){  
        var options = {  
            beforeSubmit : function() {//處理以前需要做的功能  
                $("tipMsg").text("數據正在保存,請稍候...");  
                $("#insertBtn").attr("disabled", true);  
            },  
            success : function(result) {//返回成功以後需要的回調函數  
                if ( result.success ) {  
                    $("#tipMsg").text("機構保存成功");  
                                      
                                       //這裏是對應的一棵樹,後邊會介紹到,  
                    // 控制樹形組件,增加新的節點  
                    var tree = window.parent.treeFrame.tree;  
                    tree.insertNewChild("${org.id}", result.id, result.name);  
                } else {  
                    $("#tipMsg").text("機構保存失敗");  
                }  
                // 啓用保存按鈕  
                $("#insertBtn").attr("disabled", false);  
            },  
            clearForm : true  
        };  
      
        $('#orgForm').ajaxForm(options); //通過Jquery.Form中的ajaxForm方法進行提交  
    });  
</span>  

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章