Ajax

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

异步提交,局部刷新。

 

1.同步交互

  • 客户端发出一个请求后,需等待服务器响应结束后才能发出第二个请求。

2.异步交互

  • 客户端发出一个请求后,无需等待服务器响应结束就可以发出第二个请求。
  • 浏览器页面没有刷新,只是刷新页面中局部位置,性能更高,使用更广。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户注册</title>
    <script type="text/javascript">
        var xhr;
        function checkName() {
            //获取文本值
            var value = document.getElementById("uname").value;
            
            //非空判断
            if(value==""||value==null){
                document.getElementById("span_name").innerHTML="× 用户名不能为空"
            }else {
                //创建XMLHttpRequset对象
                if(window.ActiveXObject){
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }else {
                    xhr = new XMLHttpRequest();
                }
                
                //与服务器建立连接
                xhr.open("get","servlet/AjaxServlet?uname="+value,true);

                //执行回调函数
                xhr.onreadystatechange=process;

                //发送数据
                xhr.send(null);
            }
        }
        //进行数值接收
        function process() {
            //就绪状态
            if(xhr.readyState==4){
                //状态码
                if(xhr.status==200){
                    var text = xhr.responseText;
                    document.getElementById("span_name").innerHTML=text;
                }
            }
        }
    </script>
</head>
<body>
<form>
    <p>
        用户名:<input type="text" id="uname" name="uname" placeholder="请输入用户名" onblur="checkName()"/><span id="span_name"></span>
    </p>
    <p>
        密码:<input type="password" name="pwd" placeholder="请输入密码" />
    </p>
    <p>
        <input type="submit" value="注册" />
    </p>
</form>
</body>
</html>
@WebServlet(urlPatterns = "/servlet/AjaxServlet")
public class AjaxServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //浏览器编码格式
        resp.setContentType("text/html;charset=utf-8");
        //接收数据
        String uname = req.getParameter("uname");
        
        boolean flag=false;
        if(uname.equals("gakki")){
            flag=true;
        }

        PrintWriter out = resp.getWriter();
        if(flag){
           out.println("用户名已存在");
        }else {
            out.println("用户名可用");
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值