Java軟件開發(fā)中,后臺中我們可以通過各種框架,像SSH等進(jìn)行對代碼的封裝,方便我們對Java代碼的編寫,例如,Struts,SpringMVC對從前臺到action的流程進(jìn)行封裝控制,使我們只需要進(jìn)行一些簡單配置就可以實現(xiàn);而spring進(jìn)行了對各種對象的管理進(jìn)行封裝,提供了AOP編程的方式,大大方便了我們;而hibernate和IBatis則是對JDBC代碼進(jìn)行封裝,不需要我們每次都寫那些重復(fù)而繁雜的JDBC代碼。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比革吉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式革吉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋革吉地區(qū)。費(fèi)用合理售后完善,十載實體公司更值得信賴。
前臺呢,對于頁面一些效果,驗證等,我們都是通過JavaScript語言進(jìn)行完成的,但是它也就像我們的Java代碼一樣,是最前臺語言最基礎(chǔ)的,而jQuery則是對js代碼進(jìn)行封裝方便我們前臺代碼的編寫,而且它還有一個非常大的優(yōu)勢就是解決了瀏覽器的兼容問題,這也是我們使用它非常重要的原因之一。
而現(xiàn)在為了滿足用戶的需求,Ajax(Asynchronous Javascript + XML)異步刷新起到了無可比擬的作用,以前寫Ajax操作,總是需要我們想JDBC代碼一樣進(jìn)行幾個必備的步驟:
AJAX——核心XMLHttpRequest對象,而JQuery也對Ajax異步操作進(jìn)行了封裝,這里看一下幾種常用的方式。 $.ajax,$.post, $.get, $.getJSON。
一, $.ajax,這個是JQuery對ajax封裝的最基礎(chǔ)步,通過使用這個函數(shù)可以完成異步通訊的所有功能。也就是說什么情況下我們都可以通過此方法進(jìn)行異步刷新的操作。但是它的參數(shù)較多,有的時候可能會麻煩一些??匆幌鲁S玫膮?shù):
var configObj = { method //數(shù)據(jù)的提交方式:get和post url //數(shù)據(jù)的提交路勁 async //是否支持異步刷新,默認(rèn)是true data //需要提交的數(shù)據(jù) dataType //服務(wù)器返回數(shù)據(jù)的類型,例如xml,String,Json等 success //請求成功后的回調(diào)函數(shù) error //請求失敗后的回調(diào)函數(shù) }
$.ajax(configObj);//通過$.ajax函數(shù)進(jìn)行調(diào)用。
好,看一個實際的例子吧,看一個進(jìn)行異步刪除的例子:
// 刪除
$.ajax({
type : "POST", //提交方式
url : "${pageContext.request.contextPath}/org/doDelete.action",//路徑
data : {
"org.id" : "${org.id}"
},//數(shù)據(jù),這里使用的是Json格式進(jìn)行傳輸
success : function(result) {//返回數(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ù)失敗");
}
}
});
二,$.post,這個函數(shù)其實就是對$.ajax進(jìn)行了更進(jìn)一步的封裝,減少了參數(shù),簡化了操作,但是運(yùn)用的范圍更小了。$.post簡化了數(shù)據(jù)提交方式,只能采用POST方式提交。只能是異步訪問服務(wù)器,不能同步訪問,不能進(jìn)行錯誤處理。在滿足這些情況下,我們可以使用這個函數(shù)來方便我們的編程,它的主要幾個參數(shù),像method,async等進(jìn)行了默認(rèn)設(shè)置,我們不可以改變的。例子不再介紹。
url:發(fā)送請求地址。
data:待發(fā)送 Key/value 參數(shù)。
callback:發(fā)送成功時回調(diào)函數(shù)。
type:返回內(nèi)容格式,xml, html, script, json, text,_default。
三,$.get,和$.post一樣,這個函數(shù)是對get方法的提交數(shù)據(jù)進(jìn)行封裝,只能使用在get提交數(shù)據(jù)解決異步刷新的方式上,使用方式和上邊的也差不多。這里不再演示。
四, $.getJSON,這個是進(jìn)一步的封裝,也就是對返回數(shù)據(jù)類型為Json進(jìn)行操作。里邊就三個參數(shù),需要我們設(shè)置,非常簡單:url,[data],[callback]。
其實會了$.ajax方法,其它的就都會使用了,都是一樣的,其實非常簡單。
但是這里還有一個問題,比較麻煩,就是如果頁面數(shù)據(jù)量比較大,該怎么辦呢?在常規(guī)表單的處理中,我們使用框架Struts2可以通過域驅(qū)動模式進(jìn)行自動獲取封裝,那么通過ajax,如何進(jìn)行封裝呢?這里JQuery有一個插件,Jquery Form,通過引入此js文件,我們可以模仿表單Form來支持Struts2的域驅(qū)動模式,進(jìn)行自動數(shù)據(jù)的封裝。用法和$.ajax類似,看一下實際的例子,這里寫一個保存用戶的前臺代碼:
$(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)的一棵樹,后邊會介紹到,
// 控制樹形組件,增加新的節(jié)點
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)行提交
});
這樣我們就不用再進(jìn)行數(shù)據(jù)data的封裝處理,大大簡化了我們ajax的操作這樣異步刷新的操作。綜上為JQuery中ajax的操作,感覺使用多了,和form表單的處理還是非常相似的,只不過實現(xiàn)的功能不一樣罷了。學(xué)習(xí)編程,其實就是學(xué)習(xí)對數(shù)據(jù)的流轉(zhuǎn)處理,如何從前臺獲取,傳輸?shù)椒?wù)器進(jìn)行相應(yīng)的處理,然后返回,進(jìn)行相關(guān)的顯示,把這個流程通過一些技術(shù)實現(xiàn),就完成了軟件的開發(fā),感覺還是非常有意思的。
更多JQuery的學(xué)習(xí),還需要我們通過查詢api文檔進(jìn)行完成:http://hemin.cn/jq/
以上所述是小編給大家介紹的JQuery中Ajax的操作完整例子,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!