AJAX简单介绍

 AJAX简单介绍

顺便参考了:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html

Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。

下面是 Ajax 应用程序所用到的基本技术:

  • HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。
  • JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。
  • DHTML 或 Dynamic HTML,用于动态更新表单。我们将使用 divspan 和其他动态 HTML 元素来标记 HTML。
  • 文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML。

 

1、触发事件

  
  
  
  
  1. <table width="95%" border="0" cellpadding="0" cellspacing="0"> 
  2.                     <tr> 
  3.                         <td width="22%" height="29"> 
  4.                             <div align="right"> 
  5.                                 <font color="#FF0000">*</font>用户代码:&nbsp; 
  6.                             </div> 
  7.                         </td> 
  8.                         <td width="78%"> 
  9.                             <input name="userId" type="text" class="text1" id="userId" 
  10.                                 size="10" maxlength="10" onkeypress="userIdOnKeyPress()" value="<%=userId %>" onblur="validate(this)"><span id="userIdSpan"></span> 
  11.                         </td> 
  12.                     </tr> 
  13. </table> 

使用脚本处理事件:提交给jsp处理,如下:

  
  
  
  
  1. <script>     
  2.     var xmlHttp; 
  3.     function createXMLHttpRequest() { 
  4.         //表示当前浏览器不是ie,如ns,firefox 
  5.         if(window.XMLHttpRequest) { 
  6.             xmlHttp = new XMLHttpRequest(); 
  7.         } else if (window.ActiveXObject) { 
  8.             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  9.         } 
  10.     } 
  11.      
  12.     function validate(field) { 
  13.         if (trim(field.value).length != 0) { 
  14.             //创建XMLHttpRequest 
  15.             createXMLHttpRequest(); 
  16.             var url = "user_validate.jsp?userId=" + trim(field.value) + "&timestamp=" + new Date().getTime(); 
  17.             xmlHttp.open("GET", url, true); 
  18.             //方法地址,处理完成后自动调用,回调 
  19.             xmlHttp.onreadystatechange=function() { //匿名函数 
  20.                 if(xmlHttp.readyState == 4) { //Ajax引擎初始化成功 
  21.                     if (xmlHttp.status == 200) { //http协议成功 
  22.                         document.getElementById("userIdSpan").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>"
  23.                     }else { 
  24.                         alert("请求失败,错误码=" + xmlHttp.status); 
  25.                     } 
  26.                 } 
  27.             }; 
  28.             //将参数发送到Ajax引擎 
  29.             xmlHttp.send(null); 
  30.         }else { 
  31.             document.getElementById("userIdSpan").innerHTML = ""
  32.         } 
  33.     } 
  34. </script> 

 user_validate.jsp

  
  
  
  
  1. <%@ page language="java" contentType="text/html; charset=GB18030" 
  2.     pageEncoding="GB18030"%> 
  3. <%@ page import="com.company.drp.sysmgr.manager.*" %>     
  4. <%   
  5.  
  6.     //可以采用清除缓存的方法,如下 
  7.     //response.setContentType("text/xml"); 
  8.     //response.setHeader("Cache-Control", "no-store"); //HTTP1.1     
  9.     //response.setHeader("Pragma", "no-cache"); //HTTP1.0 
  10.     //response.setDateHeader("Expires", 0);  
  11.  
  12.     //out.println("Hello"); 
  13.     //Thread.currentThread().sleep(3000); 
  14.     String userId = request.getParameter("userId"); 
  15.     if (UserManager.getInstance().findUserById(userId) != null) { 
  16.         out.println("用户代码已经存在"); 
  17.     } 
  18. %> 

 使用脚本处理事件:提交给servlet处理(<%=basePath%>servlet/ClientIdValidateServlet),如下:

  
  
  
  
  1. function validateClientId(field) { 
  2.             if (trim(field.value).length != 0) { 
  3.                 //创建XMLHttpRequest 
  4.                 createXMLHttpRequest(); 
  5.                 var url = "<%=basePath%>servlet/ClientIdValidateServlet?clientId=" + trim(field.value) + "&timestamp=" + new Date().getTime(); 
  6.                 xmlHttp.open("GET", url, true); 
  7.                 //方法地址,处理完成后自动调用,回调 
  8.                 xmlHttp.onreadystatechange=function() { //匿名函数 
  9.                     if(xmlHttp.readyState == 4) { //Ajax引擎初始化成功 
  10.                         if (xmlHttp.status == 200) { //http协议成功 
  11.                             if (trim(xmlHttp.responseText) != "") { 
  12.                                 document.getElementById("clientIdSpan").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>"; 
  13.                             }else { 
  14.                                 document.getElementById("clientIdSpan").innerHTML = ""
  15.                             } 

 

 

你可能感兴趣的:(Ajax,职场,休闲)