您好,登錄后才能下訂單哦!
Java軟件開發中,后臺中我們可以通過各種框架,像SSH等進行對代碼的封裝,方便我們對Java代碼的編寫,例如,Struts,SpringMVC對從前臺到action的流程進行封裝控制,使我們只需要進行一些簡單配置就可以實現;而spring進行了對各種對象的管理進行封裝,提供了AOP編程的方式,大大方便了我們;而hibernate和IBatis則是對JDBC代碼進行封裝,不需要我們每次都寫那些重復而繁雜的JDBC代碼。
前臺呢,對于頁面一些效果,驗證等,我們都是通過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 > // 刪除 $.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 > $(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>
這樣我們就不用再進行數據data的封裝處理,大大簡化了我們ajax的操作這樣異步刷新的操作。綜上為JQuery中ajax的操作,感覺使用多了,和form表單的處理還是非常相似的,只不過實現的功能不一樣罷了。學習編程,其實就是學習對數據的流轉處理,如何從前臺獲取,傳輸到服務器進行相應的處理,然后返回,進行相關的顯示,把這個流程通過一些技術實現,就完成了軟件的開發,感覺還是非常有意思的。
更多JQuery的學習,還需要我們通過查詢api文檔進行完成:http://hemin.cn/jq/
以上所述是小編給大家介紹的JQuery中Ajax的操作完整例子,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。