使用jQuery写了一个简单的窗口和异步刷新

使用Jquery做Ajax应用,简化了繁琐的JavaScript传统的代码书写,也便于了理解。

一下使用Jquery写的一个简单的例子:

用是:一个简单的用户注册验证的信息,AJax应用简化了传统模式的使用FROM形式提交数据,而是通过JavaScript的一个事件出发某个域中的内容提交到服务端,通过异步的形式提交,别且不影响当前也的刷新,给用户增强了友好的体验。

客户端:

<body>
        <input type="text" id="username" name="username" οnblur="verify()" />
        <input name="check" type="button" value="检查" οnclick="verify()" />
<div id="result" style="color:#ff0000;">
    

</div>

</body>

 

又两个域一个是被提交的内容域,另一个是检验的,当然了,注意:οnblur="verify()" 和οnclick="verify()",事件。

处理数据的JS代码用jQuery写的如下:

 

 

/**
 * 定义校验
 **/
function verify() {
    /**
     * 1、获取input 中的内容。
     */
    //jQuery每个函数返回的是jQuery自己的一个对象,我们可以其上去操作一些其他的jQuery方法
//    document.getElementById("username");   DOM
    /**
     *2、 送数据给Servlet
     * 调用XMLHTTPRequest对象
     *     jQuery.get(url,[data],[callback],[type])
     */
    $j.get("ajaxServlet?username="+$j("#username").val(),null,function(data){
         //alert(data);
        $j("#result").html(data);
    });
    /**
     * 3、servlet 返回数据并接受
     */
    /**
     * 4、显示数据到页面上来
     */
    //alert(username);
}

 

 

再看看繁琐的传统的JavaScript写的代码:

 

function verify() {
       var username = document.getElementById("username").value;
       var xhr;
    if(window.XMLHttpRequest()) {
         xhr  = new XMLHttpRequest();
        if(xhr.overrideMimeType) {
           xhr.overrideMimeType("text/xml"); 
        }

    }else if(window.ActiveXObject) {
        var activeName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for(var i = 0;i<activeName.length;i++) {
            try {
                xhr = new ActiveXObject(activeName[i]);
                break;
            }catch(e) {
                //alert(e);
            }
        }
       // xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
   //程序的健壮性
    if(!xhr) {
        alert("独享创建失败");
        return;
    }
    /**
     * 3servlet
     */
     xhr.onreadystatechange = function(){
         if(xhr.readyState == 4 && xhr.status==200) {
             var responseText = xhr.responseText;
             var divNode = document.getElementById("result");
             divNode.innerHTML = responseText;
         }
     }
    xhr.open("GET","ajaxServlet?username="+username,true);
    /**
     * GET方式下没有数据可以发送
     */
    xhr.send(null);
    /**
     * 4ʾݵҳ
     */
    //alert(username);
    /**
     * post 的写法
     */
   /* xhr.onreadystatechange=function() {
       if(xhr.readyState == 4 && xhr.status==200) {
             var responseText = xhr.responseText;
             var divNode = document.getElementById("result");
             divNode.innerHTML = responseText;
         }
    }
    xhr.open("POST","ajaxServlet",true);
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.send("username="+username);*/
    
    
}

 

服务端一个很简单的Servlet

package org.bestupon.ajax.servlet;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

/**
 * Created by IntelliJ IDEA.
 * User: bestupon
 * Date: 2009-9-30
 * Time: 11:27:29
 * Email:bestupon@foxmail.com
 * To change this template use File | Settings | File Templates.
 */
public class AJAXServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //处理
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out =  response.getWriter();
        String userName = request.getParameter("username");

       //2检查
        if(null == userName || userName.length() == 0) {
            out.println("the user name not null");
        }else {
            //验证
            String realityName = userName.trim();
            if(realityName.equals("bestupon") ) {
                out.println("userName["+realityName+"]already exit in system");
            }else{
                out.println("<input type='text' value='your very luckly the  ["+realityName+"] can used for sys' />");
            }
        }
    }
}

 

附件:能直接运行的项目代码:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值