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

