JQuery中Ajax的操作完整例⼦
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 //请求成功后的回调函数js获取json的key和value
error //请求失败后的回调函数
}
$.ajax(configObj);//通过$.ajax函数进⾏调⽤。
看⼀个进⾏异步删除的例⼦:
<span > // 删除
$.ajax({
type : "POST", //提交⽅式
url : "${tPath}/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 = ;
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表单的处理还是⾮常相似的,只不过实现的功能不⼀样罢了。学习编程,其实就是学习对数据的流转处理,如何从前台获取,传输到服务器进⾏相应的处理,然后返回,进⾏相关的显⽰,把这个流程通过⼀些技术实现,就完成了软件的开发,感觉还是⾮常有意思的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论