JQuery中Ajax的操作完整例子
Java軟件開(kāi)發(fā)中,后臺(tái)中我們可以通過(guò)各種框架,像SSH等進(jìn)行對(duì)代碼的封裝,方便我們對(duì)Java代碼的編寫,例如,Struts,SpringMVC對(duì)從前臺(tái)到action的流程進(jìn)行封裝控制,使我們只需要進(jìn)行一些簡(jiǎn)單配置就可以實(shí)現(xiàn);而spring進(jìn)行了對(duì)各種對(duì)象的管理進(jìn)行封裝,提供了AOP編程的方式,大大方便了我們;而hibernate和IBatis則是對(duì)JDBC代碼進(jìn)行封裝,不需要我們每次都寫那些重復(fù)而繁雜的JDBC代碼。
前臺(tái)呢,對(duì)于頁(yè)面一些效果,驗(yàn)證等,我們都是通過(guò)JavaScript語(yǔ)言進(jìn)行完成的,但是它也就像我們的Java代碼一樣,是最前臺(tái)語(yǔ)言最基礎(chǔ)的,而jQuery則是對(duì)js代碼進(jìn)行封裝方便我們前臺(tái)代碼的編寫,而且它還有一個(gè)非常大的優(yōu)勢(shì)就是解決了瀏覽器的兼容問(wèn)題,這也是我們使用它非常重要的原因之一。
而現(xiàn)在為了滿足用戶的需求,Ajax(Asynchronous Javascript + XML)異步刷新起到了無(wú)可比擬的作用,以前寫Ajax操作,總是需要我們想JDBC代碼一樣進(jìn)行幾個(gè)必備的步驟:
AJAX——核心XMLHttpRequest對(duì)象,而JQuery也對(duì)Ajax異步操作進(jìn)行了封裝,這里看一下幾種常用的方式。 $.ajax,$.post, $.get, $.getJSON。
一, $.ajax,這個(gè)是JQuery對(duì)ajax封裝的最基礎(chǔ)步,通過(guò)使用這個(gè)函數(shù)可以完成異步通訊的所有功能。也就是說(shuō)什么情況下我們都可以通過(guò)此方法進(jìn)行異步刷新的操作。但是它的參數(shù)較多,有的時(shí)候可能會(huì)麻煩一些??匆幌鲁S玫膮?shù):
var configObj = { method //數(shù)據(jù)的提交方式:get和post url //數(shù)據(jù)的提交路勁 async //是否支持異步刷新,默認(rèn)是true data //需要提交的數(shù)據(jù) dataType //服務(wù)器返回?cái)?shù)據(jù)的類型,例如xml,String,Json等 success //請(qǐng)求成功后的回調(diào)函數(shù) error //請(qǐng)求失敗后的回調(diào)函數(shù) }
$.ajax(configObj);//通過(guò)$.ajax函數(shù)進(jìn)行調(diào)用。
好,看一個(gè)實(shí)際的例子吧,看一個(gè)進(jìn)行異步刪除的例子:
<span style="font-size:18px;"> // 刪除 $.ajax({ type : "POST", //提交方式 url : "${pageContext.request.contextPath}/org/doDelete.action",//路徑 data : { "org.id" : "${org.id}" },//數(shù)據(jù),這里使用的是Json格式進(jìn)行傳輸 success : function(result) {//返回?cái)?shù)據(jù)根據(jù)結(jié)果進(jìn)行相應(yīng)的處理 if ( result.success ) { $("#tipMsg").text("刪除數(shù)據(jù)成功"); tree.deleteItem("${org.id}", true); } else { $("#tipMsg").text("刪除數(shù)據(jù)失敗"); } } }); </span>
二,$.post,這個(gè)函數(shù)其實(shí)就是對(duì)$.ajax進(jìn)行了更進(jìn)一步的封裝,減少了參數(shù),簡(jiǎn)化了操作,但是運(yùn)用的范圍更小了。$.post簡(jiǎn)化了數(shù)據(jù)提交方式,只能采用POST方式提交。只能是異步訪問(wèn)服務(wù)器,不能同步訪問(wèn),不能進(jìn)行錯(cuò)誤處理。在滿足這些情況下,我們可以使用這個(gè)函數(shù)來(lái)方便我們的編程,它的主要幾個(gè)參數(shù),像method,async等進(jìn)行了默認(rèn)設(shè)置,我們不可以改變的。例子不再介紹。
url:發(fā)送請(qǐng)求地址。
data:待發(fā)送 Key/value 參數(shù)。
callback:發(fā)送成功時(shí)回調(diào)函數(shù)。
type:返回內(nèi)容格式,xml, html, script, json, text,_default。
三,$.get,和$.post一樣,這個(gè)函數(shù)是對(duì)get方法的提交數(shù)據(jù)進(jìn)行封裝,只能使用在get提交數(shù)據(jù)解決異步刷新的方式上,使用方式和上邊的也差不多。這里不再演示。
四, $.getJSON,這個(gè)是進(jìn)一步的封裝,也就是對(duì)返回?cái)?shù)據(jù)類型為Json進(jìn)行操作。里邊就三個(gè)參數(shù),需要我們?cè)O(shè)置,非常簡(jiǎn)單:url,[data],[callback]。
其實(shí)會(huì)了$.ajax方法,其它的就都會(huì)使用了,都是一樣的,其實(shí)非常簡(jiǎn)單。
但是這里還有一個(gè)問(wèn)題,比較麻煩,就是如果頁(yè)面數(shù)據(jù)量比較大,該怎么辦呢?在常規(guī)表單的處理中,我們使用框架Struts2可以通過(guò)域驅(qū)動(dòng)模式進(jìn)行自動(dòng)獲取封裝,那么通過(guò)ajax,如何進(jìn)行封裝呢?這里JQuery有一個(gè)插件,Jquery Form,通過(guò)引入此js文件,我們可以模仿表單Form來(lái)支持Struts2的域驅(qū)動(dòng)模式,進(jìn)行自動(dòng)數(shù)據(jù)的封裝。用法和$.ajax類似,看一下實(shí)際的例子,這里寫一個(gè)保存用戶的前臺(tái)代碼:
<span style="font-size:18px;"> $(function(){ var options = { beforeSubmit : function() {//處理以前需要做的功能 $("tipMsg").text("數(shù)據(jù)正在保存,請(qǐng)稍候..."); $("#insertBtn").attr("disabled", true); }, success : function(result) {//返回成功以后需要的回調(diào)函數(shù) if ( result.success ) { $("#tipMsg").text("機(jī)構(gòu)保存成功"); //這里是對(duì)應(yīng)的一棵樹(shù),后邊會(huì)介紹到, // 控制樹(shù)形組件,增加新的節(jié)點(diǎn) var tree = window.parent.treeFrame.tree; tree.insertNewChild("${org.id}", result.id, result.name); } else { $("#tipMsg").text("機(jī)構(gòu)保存失敗"); } // 啟用保存按鈕 $("#insertBtn").attr("disabled", false); }, clearForm : true }; $('#orgForm').ajaxForm(options); //通過(guò)Jquery.Form中的ajaxForm方法進(jìn)行提交 }); </span>
這樣我們就不用再進(jìn)行數(shù)據(jù)data的封裝處理,大大簡(jiǎn)化了我們ajax的操作這樣異步刷新的操作。綜上為JQuery中ajax的操作,感覺(jué)使用多了,和form表單的處理還是非常相似的,只不過(guò)實(shí)現(xiàn)的功能不一樣罷了。學(xué)習(xí)編程,其實(shí)就是學(xué)習(xí)對(duì)數(shù)據(jù)的流轉(zhuǎn)處理,如何從前臺(tái)獲取,傳輸?shù)椒?wù)器進(jìn)行相應(yīng)的處理,然后返回,進(jìn)行相關(guān)的顯示,把這個(gè)流程通過(guò)一些技術(shù)實(shí)現(xiàn),就完成了軟件的開(kāi)發(fā),感覺(jué)還是非常有意思的。
更多JQuery的學(xué)習(xí),還需要我們通過(guò)查詢api文檔進(jìn)行完成:http://hemin.cn/jq/
以上所述是小編給大家介紹的JQuery中Ajax的操作完整例子,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- jQuery+Ajax+js實(shí)現(xiàn)請(qǐng)求json格式數(shù)據(jù)并渲染到html頁(yè)面操作示例
- 為jquery的ajax請(qǐng)求添加超時(shí)timeout時(shí)間的操作方法
- jQuery+Ajax實(shí)現(xiàn)無(wú)刷新操作
- jquery插件ajaxupload實(shí)現(xiàn)文件上傳操作
- Jquery操作Ajax方法小結(jié)
- Jquery ajax加載等待執(zhí)行結(jié)束再繼續(xù)執(zhí)行下面代碼操作
- Jquery Ajax請(qǐng)求文件下載操作失敗的原因分析及解決辦法
- jQuery學(xué)習(xí)筆記之 Ajax操作篇(二) - 數(shù)據(jù)傳遞
- 通過(guò)實(shí)例解析jQ Ajax操作相關(guān)原理
相關(guān)文章
jQuery remove()過(guò)濾被刪除的元素(推薦)
jQuery remove() 方法也可接受一個(gè)參數(shù),允許您對(duì)被刪元素進(jìn)行過(guò)濾。下面通過(guò)實(shí)例代碼給大家介紹jQuery remove()過(guò)濾被刪除的元素,需要的的朋友參考下吧2017-07-07利用jquery如何從json中讀取數(shù)據(jù)追加到html中
這篇文章主要給大家介紹了關(guān)于利用jquery如何從json中讀取數(shù)據(jù)追加到html中的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編一起來(lái)看看吧。2017-12-12JQuery對(duì)表格進(jìn)行操作的常用技巧總結(jié)
這篇文章主要介紹了JQuery對(duì)表格進(jìn)行操作的常用技巧,需要的朋友可以參考下2014-04-04jQuery 借助插件Lavalamp實(shí)現(xiàn)導(dǎo)航條動(dòng)態(tài)美化效果
導(dǎo)航條動(dòng)態(tài)顯示效果借助插件Lavalamp可以輕松實(shí)現(xiàn),以前用animate來(lái)實(shí)現(xiàn),效果不是很好2013-09-09jQuery插件DataTables分頁(yè)開(kāi)發(fā)心得體會(huì)
這篇文章主要為大家分享了jQuery插件DataTables分頁(yè)開(kāi)發(fā)心得體會(huì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08JQuery 插件模板 制作jquery插件的朋友可以參考下
JQuery 插件模板 制作jquery插件的朋友可以參考下2010-03-03jQuery實(shí)現(xiàn)為L(zhǎng)I列表前3行設(shè)置樣式的方法【2種方法】
這篇文章主要介紹了jQuery實(shí)現(xiàn)為L(zhǎng)I列表前3行設(shè)置樣式的方法,結(jié)合實(shí)例形式分析了css控制及jQuery元素獲取2種實(shí)現(xiàn)方法,需要的朋友可以參考下2016-09-09