已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此表由评阅人填写评价项目满分得分总分教师签字论点、论据40写作规范性30论述逻辑性30河南理工大学河南理工大学计算机学院课程论文课程名称:AJAX论文题目:AJAX的基本原理学生姓名 :杨二威 专业年级 :计应10-1 学 号 :4110200401862011年 10 月河南理工大学计算机学院Ajax基本原理摘要:本文介绍了Ajax的基本原理,交互过程和与之相关的技术及简单的实现方法,在此基础上给出了一个完整的实例,以使得能够对Ajax有一个更清楚的理解。关键字:Ajax,JavaScript,DOM,无刷新页面,不完全刷新引言计算机桌面应用使我们得以用以前不能想象的方式处理大量的复杂数据;基于计算机网络的C/S模式应用使得共享数据和资源成为现实。然而,正如C/S模式的应用是由于人们不满足单机的桌面应用一样,人们对C/S模式也心存抱怨了:C/S模式除了带给我们数据和资源共享的便利之外,也给我们带来了令我们(程序开发设计人员)和客户头疼的部署和发布问题。于是,B/S模式应用应运而生,而且得到了迅速的发展。B/S模式应用符合一定规范的浏览器作为通用客户端,从而解决了C/S模式中最令人头疼的部署和发布问题。但是,到此并没有结束,B/S虽然解决了应用的部署和发布问题,却因为种种限制,使得应用没有了以前丰富的交互,并且每次与服务器的交互都要完全刷新页面,这是非常糟糕和令人不快的。本文讨论了如何解决页面完全刷新和缺乏交互性的问题,我们用的方法就是Ajax。Ajax那么,Ajax到底是什么呢?Ajax(Asynchronous JavaScript + XML),即异步JavaScript + XML的缩写,这只是最初的观点,最初由Jesse James Garrett创造出来的。但是,Ajax现在的覆盖面已经有了进一步的扩展,把允许浏览器与服务器通信而无需刷新当前页面的技术都涵盖在其中了。坦率的讲,Ajax并不是什么新鲜玩艺。也就是说,Ajax并不是一种全新的技术,而更像一种技巧,是把过去的几种技术巧妙结合的技巧。真正与Ajax相关的新名词应该是XMLHttpRequest一个最早在IE 5中出现,最近开始在多数浏览器得到支持的用来实现异步通信的对象。正如前面所说,B/S模式是利用浏览器作为其通用的客户端,所以要想异步通讯成为可能,必须要得到浏览器的支持。如果不是有了浏览器对XMLHttpRequest对象的广泛支持,我们可能不会看到Ajax的今天,更不会看到许多对Ajax的著名应用,如Google Map,Google Suggest,Ta-da List等。Ajax的处理过程是怎样的呢?下图为Ajax应用的标准处理模式。数据库XHR事件Function callback()/服务器资源126354图 1 标准Ajax处理过程从图中我们可以看出:由事件触发,创建一个XMLHttpRequest对象,把HTTP方法(Get/Post)和目标URL以及请求返回后的回调函数设置到XMLHttpRequest对象,通过XMLHttpRequest向服务器发送请求,请求发送后继续响应用户的界面交互,只有等到请求真正从服务器返回的时候才调用callback()函数,对响应数据进行处理。在这个交互过程中,涉及到几种我们不得不提的技术:1 XHTML和CSS用来使表现标准化;2DOM动态的修改文档的内容和结构;3XML进行数据的交换和处理;4JavaScript对上述几种技术进行绑定,使其成为协同工作的整体。Ajax相关技术及基本原理1 XMLHttpRequest简介XMLHttpRequest,是我们得以实现异步通讯的根本。最早在IE 5 中以ActiveX组件实现;最近,Mozilla 1.0和Safari 1.2中实现为本地对象。XMLHttpRequest虽然不是W3C标准,但却得到了FireFox、Safari、Opera、Konqueror、IE等绝大多数浏览器的支持。这就使得Ajax有了今天如火如荼的发展。用XMLHttpRequest进行异步通讯,首先必须用JavaScript创建一个XMLHttpRequest对象实例。创建XMLHttpRequest对象实例的代码清单如下所示:var xmlHttp;function createXMLHttpRequest()if(window.ActiveXObject)xmlHttp = new ActiveXObject(Microsoft.XMLHTTP);else if(window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();可以看出,创建XMLHttpRequest对象相当容易。首先,声明一个全局变量xmlHttp用来保存即将创建的XMLHttpRequest对象的引用;然后,在createXMLHttpRequest()方法中完成具体创建工作。因为IE与其他浏览器对XMLHttpRequest 对象的实现方法不同,因此在创建时,通过一个分支语句进行判断。如果window.ActiveXObject调用返回true,则证明为IE浏览器,那么就通过传递“Microsoft.XMLHTTP”给ActiveXObject()来创建XMLHttpRequest对象,否则就把XMLHttpRequest实现为本地JavaScript对象。XMLHttpRequest对象在不同浏览器上的实现是兼容的,所以可以用同样的方法访问XMLHttpRequest的方法和属性。表 1 标准XMLHttpRequest方法方 法说 明abort()getAllResponseHeader()getResponseHeader(Header)open(method, url)send(content)setRequestHeader(header, value)停止当前请求把HTTP请求的所有响应头部作为键/值对返回返回指定首部的串值建立对服务器的调用向服务器发送请求把指定首部设置为所提供的值表 2 标准XMLHttpRequest属性属 性说 明onreadystatechangereadyStateresponseTextresponseXMLstatusstatusText每个状态改变都会触发这个事件处理器请求的状态:0未初始化,1正在加载,2已加载,3交互中,4完成服务器的响应,表示为一个文本字符串值服务器的响应,表示为一个XML服务器的HTTP状态码HTTP状态码的相应文本2 利用XMLHttpRequest对象发送简单请求创建了XMLHttpRequest对象,并了解了XMLHttpRequest对象的方法和属性之后,让我们来看看怎样利用XMLHttpRequest对象发送简单的请求。利用XMLHttpRequest对象发送简单请求的基本步骤如下:1) 创建XMLHttpRequest对象实例。2) 设定XMLHttpRequest对象的回调函数,利用onreadystatechange属性。3) 设定请求属性:设定HTTP方法(GET或POST);设定目标URL。利用open()方法。4) 将请求发送给服务器。利用send()方法。3 利用DOM对服务器响应进行处理前面已经设置了回调函数,回调函数正是用来处理服务器响应信息的。但是,别忘了我们的最终目的:解决页面完全刷新和缺乏交互性的问题。在服务器对我们的请求信息作出响应后,我们就得实现页面的无缝更新(就是无闪烁的更新信息)。要实现这一点,那么就不得不提到DOM了。DOM(Document Object Model),文档对象模型,是以面向对象方式描述页面文档的对象模型。DOM中定义了,与平台和语言无关的,用来表示和修改文档所需的对象、以及这些对象的属性和方法。通过DOM,我们可以把页面上的数据和结构抽象成一个树型表示,进而可以通过DOM中定义的属性和方法对文档进行操作,如遍历、编辑等。这样,服务器相应信息就可以通过DOM的方法和属性,动态的更新到页面的相应节点。从而使用户感觉不到刷新过程的存在,提高了交互性。4 一个完整的例子在这里我们给出一个完整的利用Ajax的实例。实例包含两个文件:Request.htm和Response.xml。通过Request.htm向服务器发送请求,而Response.xml模仿了从服务器返回的响应。两个文件清单如下:Ajax应用实例var xmlHttp;var requestType=;function createXMLHttpRequest()if(window.ActiveXObject)xmlHttp = new ActiveXObject(Microsoft.XMLHTTP);else if(window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();function startRequest(theRequestType)requestType = theRequestType;createXMLHttpRequest();xmlHttp.onreadystatechange = handleStateChange;xmlHttp.open(GET,Response.xml,true);xmlHttp.send(null);function myCallback()if(xmlHttp.readyState=4)if(xmlHttp.status=200)if(requestType=all)listAll();else if(requestType=north)listNorth();function listAll()var xmlDoc = xmlHttp.responseXML;var allProvs = xmlDoc.getElementsByTagName(prov);outputList(all,allProvs);function listNorth()var xmlDoc = xmlHttp.responseXML;var north = xmlDoc.getElementsByTagName(north)0;var northProvs = north.getElementsByTagname(prov);outputList(north,northProvs);function outputList(title,provs)var out=title;var currentProv = null;for(var i=0;iprovs.length;i+)currentProv = provsi;out = out + “” + currentProv.childNodes0.nodeValue;document.getElementById(title).innerHTML = out; Ajax应用实例辽宁河北天津山东江苏浙江福建广东广西海南上海台湾香港澳门小结我们已经了解了Ajax的基本原理和相关的技术。其实,Ajax就是通过JavaScript创建XM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件开发专业实习总结5篇
- 对待核能的正确态度
- 农村生活污水收集处理项目可行性研究报告
- 渣土及泥浆处理项目可行性研究报告
- 球馆承包经营合同
- 音乐线上教学计划
- 矿山企业驾驶员安全运输承诺书
- 绿色能源进度追踪
- 机场特种垃圾管理办法
- 篮球场装修设计施工合同
- 高效沟通与管理技能提升课件
- 消防维保方案 (详细完整版)
- 四年级上册英语课件- M3U1 In the school (Period 3 ) 上海牛津版试用版(共15张PPT)
- 档案馆建设标准
- 高边坡支护专家论证方案(附有大量的图件)
- 苏教版五年级上册数学试题-第一、二单元 测试卷【含答案】
- 人员定位矿用井口唯一性检测系统
- 电力系统数据标记语言E语言格式规范CIME
- 历史纪年与历史年代的计算方法
- 快递物流运输公司 国际文件样本 形式发票样本
- 管理信息系统题目带答案
评论
0/150
提交评论