AJAX是什么?
1.1AJAX 是异步的 JavaScript 和 XML(Asynchronous JavaScript And XML)
作用:它可以在不重新刷新页面的情况下与服务器通信,交换数据,或更新页面
异步:比如两件事要做,先做第一件事,你不需要等待他的结果,可以继续做第二件事件
同步:比如两件事要做,先做第一件,你要等待他出现结果,等结果出来之后,你才能继续做第二件事件
同步:
进程一 1ms
进程二 1ms
进程三 1ms
3ms
异步:
进程一 1ms
进程二 1ms
进程三 1ms
1ms
1.2 怎么发送http请求
需要创建XMLHttpRequest对象,XMLHttpRequest实现客户端与服务器的通信
需要考虑浏览器兼容问题
if (window.XMLHttpRequest) { // 新版浏览器 Chrome,Safari,火狐,欧朋,以上
xhr = new XMLHttpRequest();
} else { // 兼容IE6及以下版本的浏览器
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open(参数1, 参数2, 参数3);
参数1是请求方式:GET或者 POST
参数2是请求路径 URL
参数3是布尔值,true是支持异步,false不支持异步
一个简单的get请求
xhr.open("GET", "/", true);
xhr.send()
一个简单的post请求
xhr.open("POST", "/", true);
xhr.send()
1.3处理响应数据 通过onreadystatechange函数进行处理
readyState:
0 (未初始化) or (请求还未初始化)
1 (正在加载) or (已建立服务器链接)
2 (加载成功) or (请求已接受)
3 (交互) or (正在处理请求)
4 (完成) or (请求已完成并且响应已准备好)
status
200 响应成功
404 访问失败
500 服务器错误
responseText 处理数据 --服务器以文本字符的形式返回
responseXML 以 XMLDocument 对象方式返回,之后就可以使用 JavaScript 来处理
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var text = xhr.responseText;
}