(AJAX学习一) AJAX入门

来源:互联网 发布:5.11淘宝真假 编辑:程序博客网 时间:2024/04/30 09:50

AJAX--Asynchronous Javascript And XML


1、使用XHTML和CSS的基于标准的表示技术
2、使用DOM进行动态显示和交互
3、使用XML和XSLT进行数据交换和处理
4、使用XMLHttpRequest进行异步数据检索
5、使用Javascript将以上技术融合在一起

 

写一个入门实例感受了一下Ajax的效果,感受Ajax流行框架JQuery...

  1. //用XMLHttpRequest对象进行AJAX异步交互
  2. var xmlhttp;
  3. function verify(){
  4.     //DOM解析获得文本框的值
  5.     var name = document.getElementById("username").value;
  6.     
  7.     //第一步 获得XMLHttpRequest对象
  8.     if(window.XMLHttpRequest){
  9.         //针对FireFox mozillar Opera IE7 IE8...
  10.         xmlhttp = new XMLHttpRequest();
  11.         
  12.             //针对某些特定版本的mozillar浏览器的BUG的修正
  13.         if(xmlhttp.overrideMimeType){
  14.             xmlhttp.overrideMimeType("text/xml");
  15.         }
  16.     }else if(window.ActiveXObject){
  17.         //针对IE6 IE5...
  18.         var activexName = ["MSXML2.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.5.0","Microsoft.XMLHTTP"];
  19.         for(var i=0;i<activexName.length;i++){
  20.             try{
  21.                 xmlhttp = new ActiveXObject(activexName[i]); 
  22.                 break;
  23.             }catch(e){
  24.             }
  25.         }
  26.     }
  27.     //if(!xmlhttp){
  28.     //  alert("XMLHttpRequest创建失败!");
  29.     //}
  30.     //else{
  31.     //  alert(xmlhttp);
  32.     //}
  33.     
  34.     //第二步 注册回调函数
  35.     xmlhttp.onreadystatechange = callback;
  36.     
  37.     //第三步 设置连接信息 
  38.     //参数一是HTTP请求方式 参数二表示URL地址 参数三表示是异步或同步(true为异步)
  39.     xmlhttp.open("GET","AJAXServer?name=" + name,true);
  40.     
  41.         //xmlhttp.open("POST","AJAXServer",true);
  42.         //POST方式需要设置HTTP的请求头
  43.         //xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  44.         //xmlhttp.send("name=" + name);
  45.         
  46.     
  47.     //第四步 发送数据
  48.     //同步方式下send会在服务器数据回来后才执行 异步方式下send立即完成执行
  49.     xmlhttp.send(null);
  50. }
  51. //回调函数
  52. function callback(){
  53.     //判断对象交互
  54.     if(xmlhttp.readyState == 4){
  55.         //判断http交互
  56.         if(xmlhttp.status == 200){
  57.             //获得服务器返回数据
  58.             var responseText = xmlhttp.responseText; //获得纯文本数据
  59.             //将结果显示在页面
  60.             var divNode = document.getElementById("result");
  61.             //设置元素节点的HTML内容
  62.             divNode.innerHTML = responseText;
  63.         }
  64.     }
  65. }

JQuery实现代码要简单的多。。。这是记得引入<script type="text/javascript" src="js/jquery-1.2.js"></script>

  1. function verify(){
  2.     $.get("AJAXServer?name=" + $("#username").val(),null,function(data){
  3.         $("#result").html(data);
  4.     });
  5. }

服务器端Servlet

  1. try {
  2.             response.setContentType("text/html;charset=utf-8");
  3.             PrintWriter out = response.getWriter();
  4.             String name = request.getParameter("name");
  5.             if(name == null || name.length() == 0) {
  6.                 out.println("用户名不能为空");
  7.             }
  8.             else {
  9.                 if(name.equals("gqh")){
  10.                     out.println("用户["+name+"]已经存在,请使用其它用户!");
  11.                 }
  12.                 else{
  13.                     out.println("用户["+name+"]尚不存在,可以使用该用户!");
  14.                 }
  15.             }
  16.         }catch(Exception e){
  17.             e.printStackTrace();
  18.         }
  1.        <input type="text" id="username" />
  2.        <input type="button" value="校验" onclick="verify()"/>
  3.        <div id="result"></div>