linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > JAVA >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Ajax实现在textbox中模糊查询显
·Ajax实现分页查询
·java定时执行的三种方法
·读取数码照片中的Exif信息
·基于Spring+Hibernate+Eclip
·JAVA反编译工具jad的简单用法
·Java编程基础
·Java调用Oracle的过程和函数
·JSP获取客户端的浏览器和操作系
·java.lang包概述
·Java中利用通讯API编写短信软件
·利用Java实现网页浏览器
·Java文件操作大全
·JAVA技术:上传图片的缩放处理
·基于JSF和DAO模式的大型设备采
最新文章
·实例解析:Linux操作系统下Jav
·JAVA得到网卡物理地址(Windows
·Ajax实现在textbox中模糊查询显
·Ajax简单示例之改变下拉框动态
·AJAX如何与后台交互
·Ajax实现分页查询
·Ajax核心:XMLHTTP组件相关技术
·面向Java程序员的Ajax:构建动态
·JSP获取客户端的浏览器和操作系
·提高Java技能的几种简单有效的
·敏捷开发中需掌握移除重复代码
·Java中利用通讯API编写短信软件
·关于String和StringBuffer
·用Java得到硬盘空间
·如何优化JAVA程序设计和编码,
Google
 
AJAX如何与后台交互
[ 作者:  加入时间:2007-11-12 16:45:20  来自:Linux联盟收集整理 ]
 Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。Ajax以一种崭新的方式来使用所有的这些技术,使得古老的B/S方式的Web开发焕发了新的活力。 FaiLinux联盟
  Ajax技术之中,最核心的技术就是XMLHttpRequest,它最初的名称叫做XMLHTTP,是微软公司为了满足开发者的需要,1999年在IE5.0浏览器中率先推出的。后来这个技术被上述的规范命名为XMLHttpRequest。它正是Ajax技术之所以与众不同的地方。简而言之,XMLHttpRequest为运行于浏览器中的JavaScript脚本提供了一种在页面之内与服务器通信的手段。页面内的JavaScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。XMLHttpRequest的出现为Web开发提供了一种全新的可能性,甚至整个改变了人们对于Web应用由什么来组成的看法。它可以使我们以一种全新的方式来做Web开发,为用户提供更好的交互体验。 FaiLinux联盟
  与传统的Web开发不同,Ajax并不是以一种基于静态页面的方式来看待Web应用的。从Ajax的角度看来,Web应用应由少量的页面组成,其中每个页面其实是一个更小型的Ajax应用。每个页面上面都包括有一些使用JavaScript开发的Ajax组件。这些组件使用XMLHttpRequest对象以异步的方式与服务器通信,从服务器获取需要的数据后使用DOM API来更新页面中的一部分内容。因此Ajax应用与传统的Web应用的区别主要在三个地方: FaiLinux联盟
  1. 不刷新整个页面,在页面内与服务器通信。 FaiLinux联盟
  2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的的响应能力。 FaiLinux联盟
  3. 应用仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个页面。 FaiLinux联盟
  由此可见,Ajax使得Web应用更加动态,带来了更高的智能,并且提供了表现能力丰富的Ajax UI组件。这样一类新型的Web应用叫做RIA(Rich Internet Application)应用。 FaiLinux联盟
  前面是本人在网上找的一些关于AJAX介绍的资料,以帮助不了解AJAX技术的读者尽快了解AJAX技术,下面本人将会把自己在实际开发过程中用到的一些AJAX技术及技巧给大家介绍一下. FaiLinux联盟
  使用AJAX技术最重要的就是创建XMLHttpRequest对象,关于如何创建该对象网上有很多资料.本人最常用的一个方法是 FaiLinux联盟
  function createXMLHttpRequest() { FaiLinux联盟
   var xmlhttp; FaiLinux联盟
   try { FaiLinux联盟
   xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); FaiLinux联盟
   } catch(e) { FaiLinux联盟
   try { FaiLinux联盟
   xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); FaiLinux联盟
   } catch(e) { FaiLinux联盟
   try { FaiLinux联盟
   xml FaiLinux联盟
   FaiLinux联盟
   http = new XMLHttpRequest(); FaiLinux联盟
   } catch(e) { FaiLinux联盟
   alert("创建XMLHttpRequest对象失败!"); FaiLinux联盟
   } FaiLinux联盟
   } FaiLinux联盟
   } FaiLinux联盟
   return xmlhttp; FaiLinux联盟
  } FaiLinux联盟
  下面本人将列出一些例子及一些通过这些例子可以学到的东西. FaiLinux联盟
  下面一段代码是本人在做新增特定物品时,做验证以判断该物品是否已在数据库中存在的例子. FaiLinux联盟
  <input type="text" style="width:100%" class="noEmptyInput" name="segment10" value="<%=segment10%>" maxlength="16" onblur="do_verify();"> FaiLinux联盟
  function do_verify() { FaiLinux联盟
   var segment10 = document.mainFrm.segment10.value; FaiLinux联盟
   var inventoryItemId = document.mainFrm.inventoryItemId.value; FaiLinux联盟
   // alert(segment10) FaiLinux联盟
   xmlHttp = createXMLHttpRequest(); FaiLinux联盟
   var url = "/servlet/com.sino.ies.inv.maintenance.servlet.ItemMaintainServlet?forward=doVerify&segment10=" + segment10 + "&inventoryItemId=" + inventoryItemId; FaiLinux联盟
   xmlHttp.onreadystatechange = handleReadyStateChange; FaiLinux联盟
   xmlHttp.open("post", url, true); //传递数据的方法同样有GET和POST两种,但是当方法为POST时下面的一句话就必须写 FaiLinux联盟
   xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); FaiLinux联盟
   xmlHttp.send(null); FaiLinux联盟
  } FaiLinux联盟
  function handleReadyStateChange() { FaiLinux联盟
   if (xmlHttp.readyState == 4) { FaiLinux联盟
   if (xmlHttp.status == 200) { FaiLinux联盟
   if (xmlHttp.responseText == 'Y') { FaiLinux联盟
   document.mainFrm.isExist.value = 'Y'; FaiLinux联盟
   document.getElementById("flag").style.display = "block" FaiLinux联盟
   document.mainFrm.segment10.focus(); FaiLinux联盟
   } else { FaiLinux联盟
   document.mainFrm.isExist.value = 'N'; FaiLinux联盟
   document.getElementById("flag").style.display = "none" FaiLinux联盟
   } FaiLinux联盟
   } else { FaiLinux联盟
   alert(xmlHttp.status); FaiLinux联盟
   } FaiLinux联盟
   } FaiLinux联盟
  } FaiLinux联盟
  后台代码为: FaiLinux联盟
   boolean success = itemDAO.doVerifyItem(); //doVerifyItem为验证指定物品是否在数据库中存在的主要方法,如果该物品已存在该方法将返回TRUE FaiLinux联盟
   PrintWriter out = res.getWriter(); FaiLinux联盟
   if (success) { FaiLinux联盟
   out.print("Y"); FaiLinux联盟
   } FaiLinux联盟
   out.flush(); FaiLinux联盟
   out.close(); FaiLinux联盟
   } FaiLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Ajax实现分页查询  (2007-11-12 16:44:53)
 ·ASP.NET AJAX 客户端生命周期事件3  (2007-11-12 16:44:09)
 ·ASP.NET AJAX 客户端生命周期事件2  (2007-11-12 16:41:31)
 ·ASP.NET AJAX 客户端生命周期事件1  (2007-11-12 16:40:37)
 ·利用AJAX和ASP.NET实现简单聊天室  (2007-11-12 16:39:55)
 ·Ajax核心:XMLHTTP组件相关技术资料  (2007-11-12 16:38:59)
 ·面向Java程序员的Ajax:构建动态Java程序  (2007-11-12 16:38:29)
 ·Ajax-JavaScript-namespace  (2007-11-02 14:01:16)
 ·使用AJAX开发你自己的RSS在线阅读器  (2007-11-02 14:00:05)
 ·ajax-javascript-范围链、call对象与闭包  (2007-11-02 13:57:13)