JQuery中Ajax的操作完整例子


Posted in Javascript onMarch 07, 2017

 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 style="font-size:18px;">   // 删除 
    $.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 style="font-size:18px;"> $(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的操作完整例子,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
node.js下when.js 的异步编程实践
Dec 03 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
js获取url传值的方法
Dec 18 Javascript
Bootstrap模态对话框的简单使用
Apr 29 Javascript
Jqprint实现页面打印
Jan 06 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
May 21 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 Javascript
js实现盒子移动动画效果
Aug 09 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
Aug 19 Javascript
js判断手机系统是android还是ios
Mar 07 #Javascript
jQuery设计思想
Mar 07 #Javascript
Node.js读取文件内容示例
Mar 07 #Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 #Javascript
AngularJS的Filter的示例详解
Mar 07 #Javascript
js上下视差滚动简单实现代码
Mar 07 #Javascript
js实现下一页页码效果
Mar 07 #Javascript
You might like
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
python统计日志ip访问数的方法
2015/07/06 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
python查询mysql,返回json的实例
2018/03/26 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
高级方案规划工程师岗位职责
2013/11/29 职场文书
小学生毕业评语
2014/12/26 职场文书
淘宝好评语句大全
2014/12/31 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python