浅析AJAX技术及应用

来源 :硅谷 | 被引量 : 0次 | 上传用户:purplerain9112
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]Ajax是Web2.0的核心之一,它采用异步模式,可以开发出基于浏览器的具有高用户交互性的web应用,改变了传统Web应用的交互模式,从而可以构建出更为动态、响应更灵敏和用户体验更好的Web应用程序。
  [关键词]Ajax JavaScript DHtml Web2.0
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710057-01
  
  一、Ajax技术简介
  
  AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript
  和XML),是指一种创建交互式网页应用的网页开发技术。Ajax运用的了如下的一些基本技术:
  HTML:用于建立Web表单并构建Web应用界面;JavaScript:Ajax 技术的核心,帮助改进与服务器应用程序的通信;DHTML(Dynamic HTML):用于动态更新表单。通常使用div、span和其他动态HTML元素来标记HTML;文档对象模型DOM:用于(通过JavaScript代码)处理 HTML 结构。
  
  二、Ajax原理
  
  在传统的Web 应用程序中,交互的一般流程是:用户填写表单字段并单击提交按钮,整个表单发送到服务器,通过服务器端不同的技术(如PHP、JSP等)进行处理,然后再将处理结果以全新的页面发送回客户端。在用户提交后等待处理时,屏幕变成一片空白,用户得不到立即反馈。
  Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。也就是说当用户提交表单时,数据发送给一些JavaScript
  代码而不是直接发送给服务器。而JavaScript代码捕获表单数据并向服务器发送请求,即JavaScript 代码在幕后发送请求,用户甚至不知道请求的发出,并且请求是异步发送的,就是说JavaScript代码(和用户)不用等待服务器的响应。在JavaScript代码和服务器进行交互时,用户仍然可以继续输入数据、滚动屏幕和使用应用程序。在服务器处理完毕后将数据返回JavaScript代码(仍然在Web表单中),然后使用DOM技术迅速更新表单数据,让用户感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预,甚至完全不知道幕后发生的一切,从而极大的提升了用户体验。
  
  三、Ajax应用
  
  现以修改用户的登录名的例子来讲述AJAX在实际中的应用,该实例可以推广到网页中任何文本内容的动态修改。
  (一)创建XMLHttpRequest对象,为了使代码同时支持Internet Explorer和非Microsoft浏览器,使用如下代码
  var xmlHttp = false;
  try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
  try {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }catch (e2) {
  xmlHttp = false;
  }
  if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
  }
  在创建XMLHttpRequest对象之后,就可以结合JavaScript代码完成以下工作:从 Web 表单中获取数据->打开到服务器的连接->设置服务器处理完成后的响应函数,这也是Ajax工作的一般流程。
  (二)定义获取表单数据及更改表单的JavaScript代码
  function changeToInput(id) {
   var oNP = document.getElementById(id);//从表单中获取数据
   var value = oNP.value;
   oNP.outerHTML = "<input type='text' id='" + id + "' value='" + value + "' size='5' onblur='change(this.id)'>";//在表单中动态改变文本为输入框
   document.getElementById(id).focus();
  }
   (三)打开到服务器的连接,将修改提交服务器
  服务器处理修改的功能由changename.jsp实现,在此不做详细介绍。
  function change(id) {
   var oNP = document.getElementById(id);
   var value = oNP.value;
   gID = id;
   init();
   var url="changename.jsp?id="+escape(id)+"&normalprice="+value;
   req.open("GET", url, true);
   req.onreadystatechange = callback;
   req.send(null);
  }
  (四)定义服务器处理完成之后的响应函数
  function callback() {
   if(4 == req.readyState) {//就绪状态
   if(200 == req.status) {//无错误正常完成状态
   var oNP = document.getElementById(gID);
   var value = oNP.value;
   oNP.outerHTML = "<span id='" + gID + "' value='" + value + "' onclick = 'changeToInput(this.id)'>"+ value + "</span>";
   }
  }
  当服务器正常完成处理后,将处理结果同步更新到web页面,而利用JavaScript在幕后与服务器交互及处理交互后的结果这些复杂的过程全部隐藏起来,至此,利用完成了全部工作。
  
  四、结束语
  
  通过上述的具体示例,可以看到Ajax技术主要依赖于XMLHttpRequest
  对象及JavaScript技术,其背后隐藏的细节比较复杂,比传统的Web开发更难更繁琐,但它却能给用户带来全新的体验。Ajax不仅仅是一种时尚,更是一种构建网站的强大方法,亦是Web2.0的核心之一,因此掌握并熟练运用Ajax技术是一种必须和必然。
  
  参考文献:
  [1][美]麦克劳夫林.Head Rush Ajax-深入浅出Ajax 东南大学出版社,2006.5.
  [2]李刚.基于J2EE的Ajax宝典.电子工业出版社.2007.5.
  
  作者简介:
  李森,男,河南南阳河南工业职业技术学院网络管理中心,在职研究生,主要从事Java和计算机网络方面研究。
其他文献
[摘要]很多P2P应用程序需要通过TCP协议进行通讯连接,然而NAT技术却日益成为了TCP连接的最大障碍,一些比较流行的P2P应用程序不支持NAT穿透,或者在穿透方面做的不是很好。于是,人们提出采用新兴的SIP协议通过UDP协议建立通讯管道,甚至寄希望于发展中的IPv6协议。这篇论文主要讨论了一种全新的TCP协议P2P通讯方案,并用它成功的连接了两个位于NAT网络下的两个通讯端主机。  [关键词]
期刊
[摘要]可编程控制器(PLC)在工业控制中应用越来越广泛,而PLC控制系统的可靠性直接影响到工业企业的安全生产和经济运行,因此PLC在应用中必须提高其系统的抗干扰能力。提出使用中应注意的若干问题,以提醒使用者的注意。  [关键词]PLC 干扰源 抗干扰 软件  中图分类号:TN97 文献标识码:A 文章编号:1671-7597(2008)07120031-01    一、概述    随着科学技术的
期刊
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710039-01    一、如何快速选定多个工作表  我们可以选定若干个工作表使其成为“工作表组”可同时选中多张相邻的工作表,也可可选定多张不相邻的工作表。若要选中多张相邻的工作表,其方法为:先单击想要选定的第一张工作表的标签,按住“Shift”键,然后单击最后一个工作表的标签,这时会看到在活动工作的标题栏上出现“工作
期刊
[摘要]HSDPA因其具备高速下行速率和高容量的特点,所以备受研究者关注,分析HSDPA的关键技术,并指出HSDPA在具体实现过程中出现的问题,然后提出引入CDMA/TDMA技术来解决该问题的方案,该方案能更好提高网络对数据业务的传输。  [关键词]HSDPA WCDMA 自适应调制 混合自动重发  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710044-01 
期刊
[摘要]介绍了高端PC服务器(对称多处理器、内存>4GB)内存管理技术,以及在此硬件基础上运行的数据库管理系统性能调整与优化的理论、方法和具体实践。  [关键词]内存 数据库 性能 调整 优化  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710045-01  随着我厂信息化建设的逐步深化,ERP、分解细录等信息系统对数据处理的容量和性能提出了更高的要求。我厂ER
期刊
[摘要]在网络的使用过程中,为了保证数据及个人信息的安全,经常需要设计密码,但太普通的密码很容易被破解,一个不安全的密码有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助,同时也使得网站更具人性化,更有吸引力。  [关键词]JavaScript 密码强度 密码安全  中图分类号:TP3 文
期刊
[摘要]介绍一种基于模糊控制原理的自适应PID控制方法,实现PID控制器参数的在线自调整。仿真实验结果表明,此方法具有良好的动态、静态特性和较强的鲁棒性。  [关键词]模糊控制 PID控制器 MATLAB  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)0710025-01    一、前言    常规PID控制器结构简单,应用广泛,稳定性好,但不能克服模型参数变化范围
期刊
[摘要]阐述IPTV系统的需求分析、相关技术,总结实践过程中,IPTV对承载网的要求及优化建议。  [关键词]IPTV 承载网 骨干网 城域网 接入网Qos 组播 ADSL FTTX GPON  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710041-02  随着宽带接入的发展,用户不再满足简单的Internet上网,对通过Internet提供更多的宽带增值业务
期刊
[摘要]在VFP编程中,如何给不同环境下的程序及数据库文件加密,从而促进其应用软件的商业化。  [关键词]VF 程序 加密  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710050-01  传统密码的加密方法,是指在Dbase、FOXBASE、FOXBASE+、FOXPRO2.X 环境下开发的数据库管理系统中使用的方法。传统加密方法种类甚多,但是笔者认为由于Db
期刊
[摘要]使用PowerBuilder编程软件,结合OLEObject技术和PowerBuilder的数据窗口,实现将excel报表导入到数据库中以及将数据库中的数据导出到excel文件中的功能。  [关键词]PowerBuilder excel OLE对象 数据导入导出  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710062-01  在为某单位制作一个管理信息
期刊