AJAX入门学习总结


一、AJAX简介


AJAX的全称是异步的JavaScript和XML;主要用途是对于整个页面进行局部更新;

AJAX出现的目的是因为一般网页如果稍作改动,就会重新生成整个页面代码,消耗大。而AJAX能够只更新局部页面;

AJAX是在JavaScript代码中编写的;


二、XMLHttpRequest


XMLHttpRequest是整个AJAX的核心,我们通过XMLHttpRequest进行发送和接受数据;

为了取得此对象,我们需要通过以下代码:

<script language="Javascript">
			var xmlHttp;
			function create(){
				if(window.XMLHttpRequest){
					xmlHttp = new XMLHttpRequest();
				}
				else{
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
			}
</script>
浏览器有两种内核,IE内核和firefox内核;因此需要根据当前用户浏览器进行判断;


XMLHttpRequest有一些常用属性:


(1)readyState :请求的状态;(4 表示已经响应完毕)

(2)onreadystatechange :readyState改变时调用,通常用于回调函数的返回值;

(3)responseText :返回纯文本对象;

(4)responseXML :返回XML数据的对象;

(5)status 返回当前HTTP的状态(200为正常)


XMLHttpRequest的常用函数:


(1)open("GET/POST","url"); : 创建请求,指定是post还是get,并且指定发送的目的地URL;

(2)send(param); :发送请求,通常param=null;


知识回顾:


在JavaScript中

(1)document.getElementById("name").innerHTML可以设定此控件的值;

(2)onblur事件表示失去焦点时调用;


登录异步验证代码:


这里使用DAO进行连接数据库,因此这段代码忽略;

<html>
	<head>
		<title>Title</title>
		<script language="Javascript">
			var xmlHttp;
			var flag = false;
			function create(){
				if(window.XMLHttpRequest){
					xmlHttp = new XMLHttpRequest();
				}
				else{
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
			}
			function checkId(id){
				create();
				xmlHttp.open("GET","CheckServlet?id="+id);
				xmlHttp.send(null);
				flag = true;
				xmlHttp.onreadystatechange = callback;
				document.getElementById("msg").innerHTML = "正在验证";
			}
			function callback(){
				if(xmlHttp.readyState==4){
					if(xmlHttp.status==200){
						var text = xmlHttp.responseText;
						if(text=="true"){
							document.getElementById("msg").innerHTML = "id正确";
						}
						else{
							document.getElementById("msg").innerHTML = "id重复";
						}
					}
				}
			}
			function ischecked(){
				return flag;
			}
		</script>
	</head>
	<body>
	<form action="" method="post" onSubmit="return ischecked()">
		用户ID:<input type="text" name="id" onBlur="checkId(this.value)"/><br />
		姓  名:<input type="text" name="name"/><br />
		密  码:<input type="text" name="password"/><br />
		<input type="submit" value="注册"/>
		<span id="msg"></span>
	</form>
	</body>
</html>

注意:

(1)调用回调函数不需要加括号。

(2)readyState的拼写;


CheckServlet.java
package org.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import org.dao.factory.*;
public class CheckServlet extends HttpServlet{
	public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
		String id = req.getParameter("id");
		PrintWriter out = resp.getWriter();
		boolean flag=false;
		try{
			flag = DAOFactory.getInstance().findById(id);
		}
		catch(Exception e){}
		if(flag){
			out.print("true");
		}
		else{
			out.print("false");
		}
	} 
}


异步验证注册的优点:

(1)能够在没有提交前就知道用户名是否有效,现在使用的很多。





  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值