AJAX笔记

本文详细介绍了AJAX(异步JavaScript和XML)的工作原理和技术要点,包括如何创建和使用XMLHttpRequest对象来实现局部页面刷新,以及通过示例代码展示了如何处理服务器响应。

AJAX:Asynchronous JavaScript and XML (异步的JavaScript 和XML)

AJAX主要做局部刷新

操作需要异步对象(XMLHttpRequert,JS中的对象)

异步对象

22:24

ajax中使用XMLHttpRequest对象

1)创建异步对象var xm1Http = new XMLHttpRequest() ;

2)给异步对象绑定事件。onreadystatechange :当异步对象发起请求,获取了数据都会触发这个事件。

这个事件需要指定-一个函数,在函数中处理状态的变化。

3)初始化异步请求对象

4)发送请求

例如:

xmlHttp . onreadystatechange= function () {

处理请求的状态变化。

}

异步对象的属性readystate 表示异步对象请求的状态变化

0: 创建异步对象时, new XMLHttpRequest() ;

1:初始异步请求对象,xm1Http . open()

2:发送请求,xmnlHttp. send()

3:从服务器端获取了数据,此时3, 注意3是异步对象内部使用, 获取了原始的数据。

4:异步对象把接收的数据处理完成后。此时开发人 员在4的时候处理数据

回调:当请求的状态变化时,异步对象会自动调用onreadys atechange事件对应的函数.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>xiaoqiu</title>
</head>
<body>
    <script src="JQuery.js"></script>
    <script text="text/javascript">
        //1.创建异步对象
        var XMLHttp = new XMLHttpRequest();
        //2.给异步对象绑定事件。onreadystatechange 
        XMLHttp.onreadystatechange=function(){
            if(XMLHttp.readyState==4 &&  XMLHttp.status==200){
                var data=XMLHttp.responseText//从服务器获取数据
                alert(XMLHttp.readyState);
                //处理服务器的数据,对页面进行更改
                $("div").text(data);
                alert(XMLHttp.readyState);
            }
        }
        alert(XMLHttp.readyState);
	//3初始化异步请求对象
        XMLHttp.open("get","localhost",true)//初始化异步请求对象
        //open("请求方式get,post","服务器地址","同步还是异步 默认是异步true")
        alert(XMLHttp.readyState);
	//4.发送请求
        XMLHttp.send()//发送请求
        alert(XMLHttp.readyState);
    </script>
    <div></div>
</body>
</html>

 获取后端Json格式数据进行解析

varxmlHttpRequest=newXMLHttpRequest();
xmlHttpRequest.onreadystatechange=function(){
	if(xmlHttpRequest.status==200&&xmlHttpRequest.readyState==4){
		//获取后端json数组格式的数据,然后进行解析
		vardatas=xmlHttpRequest.responseText;
		window.eval("varprovinces={'province':["+datas+"]}");//城市json
		vardata=provinces.province;
		varhtml="<option>请选择省份</option>";
		for(vari=0;i<data.length;i++){
		vartemp=data[i];
		html=html+"<option>"+temp.provinceName+"</option>";
		}
	document.getElementById("province").innerHTML=html;
	}
}
xmlHttpRequest.open("get","province",true);
xmlHttpRequest.send();


<scripttype="text/javascript">
window.onload=function(){
	document.getElementById("province").onchange=function(){
		varval=$("#province").val();
		varxmlHttpRequest=newXMLHttpRequest();
		xmlHttpRequest.onreadystatechange=function(){
		if(xmlHttpRequest.status==200&&xmlHttpRequest.readyState==4){
			vardatas=xmlHttpRequest.responseText;
			window.eval("varcitys={'city':["+datas+"]}");
			varcityobjs=citys.city;
			varhtml="<option>请选择城市</option>";
			for(vari=0;i<cityobjs.length;i++){
				vartemp=cityobjs[i];
				html=html+"<option>"+temp.cityName+"</option>";
			}
			document.getElementById("city").innerHTML=html;
		}
	}
	xmlHttpRequest.open("get","city?province="+val,true);
	xmlHttpRequest.send();
	}
}

 

同步和异步

异步对象.open("请求方式","地址",boolean 是否异步)

异步表示,ajax向服务器发起请求时,代码还会往后执行,效率高

同步表示,ajax向服务器发起请求,等到服务器接收请求并对请求进行处理后再执行后面的代码

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XUN~MLF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值