AJAX简介

一.同步和异步
1.同步(Synchronous)
在一个任务进行中时,不能开启其它的任务。
同步访问:浏览器在向服务器发送请求时,浏览器只能等待服务器的响应,不能做其它的事情。
出现场合:
(1)地址栏输入网址访问网页
(2)a标记的默认跳转
(3)submit按钮的表单提交
2.异步(Asynchronous)
在一个任务进行中时,可以开启其它的任务。
异步访问:浏览器在向服务器发送请求时,不耽误用户在网页上做其它的操作。
出现场合:
(1)用户名重复验证
(2)搜索建议
(3)聊天室
(4)股票走势图
二.什么是AJAX
AJAX:Asynchronous Javascript And Xml.
异步的 js 和 xml
本质:使用js提供的异步对象(XMLHttpRequest),异步的向服务器发送请求,并接收响应的数据。
AJAX中,可以无刷新的来更改页面中布局内容。
三.异步请求的步骤

   (1)创建AJAX对象(xhr)
	    标准创建:var xhr=new XMLHttpRequest();
			IE8以下:var xhr=new ActiveXObject("Microsoft.XMLHttp");
    通过window.XMLHttpRequest来判断浏览器是否支持标准创建。如果不支持标准创建,那么window.XMLHttpRequest的值为null。
			ex:
			if(window.XMLHttpRequest){
			   var xhr=new XMLHttpRequest();
			}else{
			  var xhr=new ActiveXObject("Microsoft.XMLHttp");
			}
	(2)绑定监听事件

	    1.readyState属性
			  作用:用于表示xhr对象的请求状态
				值:0-4表示5个不同状态
				 0:请求尚未初始化
				 1:已经打开到服务器的连接,正在发送请求
				 2:接收响应头
				 3:接收响应主体
				 4:接收响应数据成功
       注意:当readyState的值为4的时候,才表示所有的响应都已经接收完成。
		2.status属性
			  作用:表示服务器的响应状态
				值:200
				当status的值为200时,表示服务器已经正确的处理请求并给出响应。
	    3.onreadystatechange-事件
			  作用:当xhr对象的readyState属性值发生改变时,要自动激发的操作(事件)。
				语法:
				  xhr.onreadystatechange=function(){
					 if(xhr.readyState==4&&xhr.status==200){
						  var result=xhr.responseText;
							console.log(result);
						} 
					}

	(3)打开连接(创建请求)
	    open() 作用:打开连接
			语法:xhr.open(method,url,isAsyn);
			1.method 请求方法 
			  string类型 :get/post
            2.url 请求地址
			  string类型
            3.isAsyn 
			  boolean 类型:true(异步)/false(同步)
	(4)发送请求 
	        send() 发送请求
			语法:xhr.send(body)
			body:请求主体
			如果没有请求主体的话,body位置放null。
			如果有请求主体,则将数据放于body位置处。

四.使用get提交方式,发送请求数据(带参数)

	//3.打开连接
	//获取输入用户名称
	var user_name=$("uname").value;
	var user_pwd=$("upwd").value;
	xhr.open("get","/demo/login?uname="+user_name+"&upwd="+user_pwd,true);
   	//4.发送请求
	xhr.send(null);

五.使用post方法提交数据给服务器

1.post的请求数据要放在请求主体中
	  xhr.send("uname="+value1+"&upwd="+value2);
2.在发送请求之前,需要手动的修改请求的消息头
	  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencode");
ex:
	  //3.打开连接
	  //获取输入用户名称
	  var user_name=$("uname").value;
	  var user_pwd=$("upwd").value;
	  xhr.open("post","/demo/postLogin",true);
      //增加:设置post方法请求时的消息头
	  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		  
	  //4.发送请求
	  var sendMsg="user_name="+user_name+"&upwd="+user_pwd;
	  xhr.send(sendMsg);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值