day25 ajax01

101 阅读2分钟

基本概念

同步交互
		客户端向服务器发起请求,直到服务器端响应的全过程,用户是不可以做其他事情的(等)
		典型:网址请求、表单请求,这两种请求都会导致整个页面跳转
		执行速度相对较慢,响应完整的HTML网页

	异步交互
		客户端向服务器发起请求,直到服务器端响应的全过程,用户是可以做其他事情的(不等)
		典型:ajax请求,不严格的定义:客户端与服务器端进行交互,而无需刷新当前页面的技术,称之为ajax,局部发生了变化
		执行速度相对较快,响应部分的HTML网页

	AJAX - Asynchronous JavaScript And XML - 异步的javascript和xml
		其实以前我们也见过一个异步技术:定时器,哪怕定时器的代码在耗时也不无所谓,他不会卡住后续代码,目的:做特效
		今天我们学一个新的异步技术:ajax,目的:【没有表单的情况下】,也能和服务器端进行沟通 - 前端技术:有没有表单无所谓了

Ajax如何使用:4步

1、创建核心对象xhr
	var xhr=new XMLHttpRequest();

2、连接服务器:
	xhr.open("GET/POST","随便路由");

3、发送请求消息:
	xhr.send("key=value&pwd=value&...");

	特殊:
		1、如果你是GET请求方式,那么send失效,但是还不能省略必须写为send(null),你必须把你的请求消息放到url?后面
			xhr.open("GET","随便路由?key=value&pwd=value&...");
			xhr.send(null);
			//找别人拿东西都用get

		2Node.js目前不允许使用POST,而且ajax的POST也麻烦 - 不准用
			xhr.open("POST","随便路由")
			xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			xhr.send("随便路由key=value&pwd=value&...")

4、绑定监听状态事件
	xhr.onreadystatechange=()=>{
		if(xhr.readyState==4&&xhr.status==200){
			console.log(xhr.responseText);//表单做不到,只有ajax可以做到 - 最难的点就在于,你拿到了数据,要干什么?
		}
	}