ajax

1 ajax概念

Ajax(Asynchronous Javascript And XML):异步的JavaScript和XML技术,是一种创建交互式网页应用的网页开发技术。

2 ajax特点

a) 无需加载整个页面,能够部分刷新页面
b) 是一个前端技术

3 ajax 的过程

如何发送一个ajax请求
i.创建ajax引擎

ii.创建一个http请求
open(method,url,async):表示创建一个http的请求,method请求方式、url请求的路径地址、async表示请求是否异步

iii.发送http请求
send(body):发送该http请求,body是post请求的数据

iiii.利用请求状态改变触发器获取请求进度(也就是监听readystate的状态)
onreadystatechange:请求状态改变事件触发器,当readyState值发送变化时,调用该事件触发器上绑定的函数

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'testajax.jsp' starting page</title>
<style type="text/css">
	#myDiv{
		width: 300px;
		height: 180px;
		border: 2px solid darkblue;
	}
</style>
</head>
<body>
	<button onclick="doAjax();">发送ajax请求</button>
	<hr/>
	<div id="myDiv"></div>
	
	<script type="text/javascript">
		function doAjax(){
			//1.创建ajax引擎对象
			var xhr = new XMLHttpRequest();
			//4.利用请求状态改变触发器获取请求进度
			xhr.onreadystatechange = function(){
				//readyState 等于4表示请求完成
				if(xhr.readyState == 4){
					if(xhr.status == 200){
						document.getElementById("myDiv").innerHTML = xhr.responseText;					
					}else if(xhr.status == 404){
						document.getElementById("myDiv").innerHTML = "您请求的资源不存在!";
					}else if(xhr.status == 500){
						document.getElementById("myDiv").innerHTML = "您请求服务器出了点问题!";
					}
				}else{
					document.getElementById("myDiv").innerHTML = "<img src='image/30.gif' />"
				}
			}
			//2.创建一个Http请求
			xhr.open("get", "hello", true);
			//3.发送该Http请求
			xhr.send(null);
			
			//send会根据open中的async来决定是否同步或异步
			//alert("hello");
		}
	</script>
</body>
</html>

4 ajax请求时参数传递

<%@ page import="cn.szsxt.bean.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
欢迎<%=((User)session.getAttribute("user")).getRealname()%>回家!
<hr>
<button onclick="getAllClazz();">显示班级信息</button>
<table id="clazztable" border="1" style="border-collapse: collapse;">

</table>
<script type="text/javascript">
	function getAllClazz(){
		//window.location.href = "showclazz";
		
		//在此处发送ajax请求
		//1.创建xhr,XMLHttpRequest对象
		var xhr = new XMLHttpRequest();
		//4.监听readyState的值的变化
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				//如何处理返回回来的结果
				var clazzs = JSON.parse(xhr.responseText);
				for(var i = 0;i < clazzs.length; i++){
					document.getElementById("clazztable").innerHTML += "<tr><td>"+clazzs[i].id+"</td><td>"+clazzs[i].classname+"</td><td>"+clazzs[i].classloc+"</td></tr>";
				}
				//将上面的字符串信息解析,在当前页面中通过dom操作,将数据呈现在本页面中
			}
		}
		//2.创建http请求
		xhr.open("get", "showclazz", true);
		//3.发送请求
		xhr.send(null);
	}
</script>
</body>
</html>

5 封装ajax

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值