1、概念:
同步交互:客户端向服务器端发送请求,直到服务器端进行响应的全过程,用户是不能做其他事情的(等)
典型:网址请求、表单请求 - 都是属于同步交互
异步交互:客户端向服务器端发送请求,直到服务器端进行响应的全过程,用户是可以做其他事情的(不等)
典型:ajax请求
2、ajax:asynchronous javascript and xml:直译:异步的javascript和xml
不严格的定义:页面不会完全的刷新,只会导致局部页面发生改变
其实我们很早之前就已经见过一个异步技术了:
1、定时器 - 定时器里面的内容再耗时也不会卡主后续代码 - 做特效
2、ajax - 目的:在不刷新页面的情况下也可以和服务器端进行交互沟通,【可以将服务器端的数据放到前端】
3、如何使用:4个固定步骤
1、创建ajax的核心对象XMLHttpRequest - 简称XHR对象
var xhr=new XMLHttpRequest();
2、建立和服务器端的连接
xhr.open("GET/POST","xx.php");
3、向服务器发送请求
xhr.send("key=value&key=value&...");
特殊:
1、如果是GET请求,send方法会失效,但是还不能省略不写,必须写为xhr.send(null),请求消息放到url?后面
xhr.open("GET","xx.php?key=value&...");
xhr.send(null);
2、如果是POST请求,send方法可用,但是需要在之前设置请求头部
xhr.open("POST","xx.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("key=value&...");
4、设置状态事件监听
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200){
xhr.responseText;
}
}
AJAX-2 - 掘金 (juejin.cn)