




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AJAX Hacks之Hack 4. 接收XML格式的数据当前的许多交换数据的技术都使用XML格式的数据,那是因为XML格式的数据被广泛的使用和支持。因此,不同用户可以已有的技术来生成、发送、接收XML数据而不需要使用别的工具转换数据的格式。一个典型的例子就是一个GPS设备可以在任何地方共享它需要的数据。无论是在远行、或是户外活动,当把设备插入到计算机的UBS接口后,就可以向web发送数据了。GPS软件被设置为默认支持XML格式的数据。而web也使用xml格式的数据。尽管本书不会将XML作为重点介绍,但是读者也对XML也有所了解。XML使用标记来描述和区分不同的信息。XML数据以 开始,当然这是可选的,接下来是文件的根元素。例如:GarminForerunner 301在这里gps是跟元素,gpsMaker和gpsDevice是子元素. Ajax和request object可以接收XML格式的数据,这对处理web响应是非常有用的。当HTTP请求完成后,request对象持有一个名为responseXML的属性. AJAX可是使用这个DOM文档对象。这有一个例子:function handleResponse( )if(request.readyState = 4)if(request.status = 200)var doc = request.responseXML;.在上述的代码中,doc变量是一个DOM文档对象,它为浏览器显示页面提供了一个简单的API。本hack从服务器接受xml数据,然后利用DOM编程来对XML数据进行处理。如果你只想查看一下XML文本,使用request.responseText来进行替代.本hack的HTML文件和上一个的相同,但在后边加了一个div元素,用来显示返回的XML信息。代码如下:“/TR/1999/REC-html40119991224/strict.dtd”A Few Facts About Yourself.javascript:void%200First name: Last name: Gender: Country of origin: Send DataFigure 1-3 输入前的画面.文件hack3.js中的JavaScript代码使用POST方法向服务器发送请求,然后接收服务器响应的xml格式的数据。字段确认部分在这里跳过去了,当让这是必不可少的。和本章其他例子相似,服务器程序返回给客户的数据格式为:Bruce. 代码如下:var request;var queryString; /用来存储post的数据function sendData( )setQueryString( );var url=“/s/sender”;httpRequest(“POST”,url,true);/XMLHttpRequest处理函数function handleResponse( )if(request.readyState = 4)if(request.status = 200)var doc = request.responseXML;var info = getDocInfo(doc);stylizeDiv(info,document.getElementById(“docDisplay“”); else alert(“A problem occurred with communicating between “”+“the XMLHttpRequest object and the server program.“”;/end outer if/* Initialize a request object that is already constructed */function initReq(reqType,url,bool)/* Specify the function that will handle the HTTP response */request.onreadystatechange=handleResponse;request.open(reqType,url,bool);request.setRequestHeader(“Content-Type“”,“application/x-www-form-urlencoded; charset=UTF-8“”;/* Only works in Mozilla-based browsers */request.overrideMimeType(“text/xml“”;request.send(queryString);/* Wrapper function for constructing a request object.Parameters:reqType: The HTTP request type, such as GET or POST.url: The URL of the server program.asynch: Whether to send the request asynchronously or not. */function httpRequest(reqType,url,asynch)/SnippedSee Hack #1function setQueryString( )queryString=“”;var frm = document.forms0;var numberElements = frm.elements.length;for(var i = 0; i numberElements; i+) if(i numberElements-1) queryString = =+encodeURIComponent(frm.elementsi.value)+“&”; else queryString = =+encodeURIComponent(frm.elementsi.value);/* Provide the div elements content dynamically. We can addstyle information to this function if we want to jazz up the div */function stylizeDiv(bdyTxt,div)/reset DIV contentdiv.innerHTML=“”;div.style.backgroundColor=“yellow”;div.innerHTML=bdyTxt;/* Get information about an XML document via a DOM Document object */function getDocInfo(doc)var root = doc.documentElement;var info = ” Document root element name: + root.nodeName;var nds;if(root.hasChildNodes( ) nds=root.childNodes;info+= ” Root nodes child node names/values: ;for (var i = 0; i nds.length; i+)info+= ndsi.nodeName;if(ndsi.hasChildNodes( )info+= “ : “+ndsi.firstChild.nodeValue+“”; else info+= ” : Empty;return info; Mozilla Firefox可是使用request.overrideMimeType( )函数强制格式化象形数据的格式类型,使用 request.overrideMimeType(text/xml). IE中不必这么做。 在POSTs完数据后接收响应,然后调用函数getDocInfo( ), 该函数用来显示XML文档的信息:var doc = request.responseXML;var info = getDocInfo(doc);geTDocInfo( )函数取得xml的根元素(var root = doc.documentElement; 建立一个string来保存root元素的信息以及其子元素的信息。接下来stylizeDiv( )函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关食堂厨师招聘面试模拟题及答案
- 外事办公室翻译招聘笔试(韩语)经典考题含答案
- 2025年外事办公室翻译招聘面试(西班牙语)预测题及答案
- 2025私营企业间的借款合同
- 物流产品组合协议
- 2025年反欺诈试题及答案
- 2025年法律文本翻译专业资格考试试卷及答案
- 2025年中国肉类协会肉类分割师认证考试专项练习含答案
- 政府会计准则制度实施能力考试(农业农村事业单位)经典考题含答案
- 2025年文旅局遴选公务员笔试题库附答案
- 塔吊拆除安全操作方案模板
- 普惠金融业务讲座
- 虚拟健康咨询接受度分析-洞察及研究
- 多发性周围神经病护理查房
- 巡检员质量培训
- GB/T 1303.1-1998环氧玻璃布层压板
- GB/T 11684-2003核仪器电磁环境条件与试验方法
- 家具厂精益改善推行报告课件
- 不锈钢棚施工方案
- 第2章 动车组检修工艺基础动车组维护与检修
- 筋针疗法牛君银培训课件
评论
0/150
提交评论