XMLHTTPRequest处理返回XML数据和jQuery处理返回XML数据比较
来源:互联网 发布:网络教育高升本费用 编辑:程序博客网 时间:2024/04/28 11:33
在Ajax应用中,使用XMLHTTPRequest处理的请求后台可以返回给纯文本数据,也可以是XML数据,但是XML数
据比纯文本更好一些。可以在其中包含大量的数据,更可以使用dom4j这样的XML工具进行XML文本的解析,下面我们
通过两种方式,分别是纯JavaScript创建XMLHTTPRequest对象和Dom 解析XML,然后再使用jQuery处理XML对象,
比较一下就可以发现jQuery写Ajax应用的优势。
首先是JavaScript实现XML数据的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>ajax1.html</title><script type="text/javascript">var xmlhttp;function verify(){//这个方法使用XMLHttpRequest对象来进行Ajax异步交互数据//1.使用dom的方式获取文本框的内容var userName = document.getElementById("userName").value;//2.创建XMLHTTPRequest对象if(window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else if(window.ActiveXObject){//针对ie6以下版本var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];//两个可以用来创建XMLHTTPRequest对象的控件,进行尝试创建for(var i=0; i < activexName.length; i++){try{xmlhttp = new ActiveXObject(activexName[i]);break;}catch(e){}}}//最后 确认xmlhttprequest对象创建成功if(!xmlhttp){alert("请更换更新版本的浏览器");return;}else{//2.注册回调函数,只需要函数名不需要加括号xmlhttp.onreadystatechange = callback;//3.设置连接信息xmlhttp.open("GET","/Ajax/servlet/AjaxXmlServer?name="+userName, true);//4.发送数据,开始和服务器端进行交互xmlhttp.send(null);}}//回调函数function callback(){//判断对象交互完成if(xmlhttp.readyState==4){//判断http交互是否成功if(xmlhttp.status==200){//获取服务器的数据//获取XML包装的的数据var responseText = xmlhttp.responseXML;var messageNodes = responseText.getElementsByTagName("message");var messageNode = messageNodes[0];var text = messageNodes[0].firstChild.nodeValue;document.getElementById("div1").innerHTML=text;}}}</script> </head> <body> 用户名:<input type="text" id="userName" onblur="verify();"/><span id="div1" style="color: red"></span><br/> 密码:<input type="password" id="password" /><br/> 邮箱:<input type="text" id="mail" /> </body></html>
下面的是后台的servlet的代码
package com.bird.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AjaxXmlServer extends HttpServlet {/** * 返回XML数据 */private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/xml;charset=UTF-8");String name = request.getParameter("name");//name = new String(name.getBytes("ISO-8859-1"),"UTF-8");PrintWriter out = response.getWriter();StringBuilder builder = new StringBuilder();builder.append("<message>");if(name.equals("bird")){builder.append("用户名"+name+"已经存在").append("</message>");}else{builder.append("用户名不存在,可以使用"+"</message>");}out.println(builder.toString());}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
然后是jQuery的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>ajax.html</title><script type="text/javascript" src="/Ajax/js/jquery-1.7.2.js"></script><script type="text/javascript">function test(){//1.获取文本框中的值var value = $("#userName").val();//2.将文本框中的内容发送给后台服务器//JavaScript定义一个简单的对象如下//var obj = {name:"123",age:20};$.ajax({type: "POST",////http请求方式url: "/Ajax/servlet/AjaxXmlServer", //服务器的地址data: "name="+value, //发送的数据dataType: "xml", //数据的返回类型success: callback //注册回调函数});}function callback(data){//回调函数//需要将data这个dom对象中的数据解析出来,首先需要将dom对象转换成jQuery对象var jqueryObj = $(data);//获取messahe节点var message = jqueryObj.children();var text = message.text();$("#div1").html(text);}</script> </head> <body> 用户名:<input type="text" id="userName" onblur="test();"/><span id="div1" style="color: red"></span><br/> 密码:<input type="password" id="password" /><br/> 邮箱:<input type="text" id="mail" /> </body></html>
可以发现,jquery的方法简单很多,所以建议使用后面的这种方法。
- XMLHTTPRequest处理返回XML数据和jQuery处理返回XML数据比较
- XMLHttpRequest处理xml格式的返回数据
- jquery 处理返回数据 html json xml
- jQuery入门学习三:XMLHttpRequest处理xml格式的返回数据
- Ajax处理XML,XMLHttpRequest对象的创建和访问servlet并返回xml数据到页面展示
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- 【js与jquery】jquery对服务器端返回xml格式数据的解析和处理
- ajax处理返回的xml格式数据
- jquery处理xml数据
- jQuery入门学习四:jQuery处理xml格式的返回数据
- 用jQuery接受和处理xml数据
- 处理xml返回报文
- Ajax返回XML数据
- WebApi返回Xml和返回json处理方法
- 【ajax】xmlHttpRequest servelet生成xml文件 服务器返回的是XML格式数据
- Ajax 使用XMLHttpRequest对象发送数据和接收处理XML源代码
- WebService 返回json格式和返回xml格式的数据
- nginx upload module 的ruby 测试代码
- 笔记本win7制作虚拟wifi
- java反射机制
- 同步、异步、阻塞和非阻塞
- 大数相乘的一种新思路
- XMLHTTPRequest处理返回XML数据和jQuery处理返回XML数据比较
- 30分钟掌握STL系列(五)
- linux设备驱动模型之 device(设备)原理与实例分析
- Java语言对对象引用的4种方式
- Android中APK安装过程及原理解析
- 原来T-SQ和PL-SQL是这样啊?
- java 日期格式化
- 递归计算n个数中取k个的取法总数
- 2007年百度之星程序设计大赛试题初赛题目-题3-实习生小胖的百度网页过滤器