ajax是一种什么技术
ajax是一种用来改善用户体会的技术,其本质是使用浏览器提供的一个特别的目标(XMLHttpRequest,也可称之为ajax目标)向服务器发送异步恳求。服务器使用这些数据对当时页面做部分更新。整个过程,页面无改写,不打断用户的操作。
注: 异步恳求:发送恳求的一起,浏览器不会销毁当时页面,用户任然可以对当时页面做其他操作。
怎么取得ajax目标?
区别浏览器
function getXhr() {
var xhr = null;
if(window.XMLHttpRequest){
//非ie浏览器
xhr = new XMLHttpRequest();
}else{
//ie浏览器
xhr = new ActionXObject(“Microsoft.XMLHttp”);
}
return xhr;
}
ajax目标的几个重要的特点
a.onreadystatechange:用来绑定一个事情处理函数,用来处理readystatechange事情。
注:当ajax目标得readystate特点值发生了任何改动(比如从0变成了1),就会产生readystatechange事情。
b.readyState:有5个值(0,1,2,3,4),表示ajax目标与服务器通讯的状态。其中,当值为4时,表示ajax目标已经取得了服务器回来得一切得数据。
c.responseText:取得服务器回来得文本数据。
d.responseXML:取得服务器回来得xml数据。
e.status:取得状态码。 (500,404,200(正常运行),302(重定向)。。。)
编程过程(不固定)
step1:取得ajax目标。
比如: var xhr = getXhr();
step2:发送恳求。
a、发送get恳求
(1) 翻开: xhr.open(‘get’,’check_uname.do?uname=tom’,true);
check_uname.do(地址):需要是事先在servlet写好接收恳求的方法 ,如果有参数加在恳求地址的后边用问号离隔,参数之间用&离隔
true:异步的,发送恳求的一起,浏览器不会销毁当时页面,用户任然可以对当时页面做其他操作。
false:同步的,几乎不用了。发送恳求时,浏览器会确定当时页面,用户不能够对当时页面做其他操作。
(2) xhr.onreadystatechange=f1; (f1:事情处理函数)
(3) 发送:(ajax把恳求数据打包发送) xhr.send(null);
b、发送post恳求
(1). xhr.open(‘post’)
step3:编写服务器端的程序(servlet)。
注:一般不需要回来完好的页面,只需要回来部分数据(文本)。
step4:编写事情处理函数。
function f1(){
//先取得服务器回来得数据
if(xhr.readyState == 4 && xhr.status ==200){
var txt = xhr.responseText;
//使用这些数据更新页面
…
}}
为什么vue不使用ajax
ajax和axio本质上都是对原生XHR的封装。
ajax是jQuery封装使用的方法,通常和jQuery一起使用。
相较于ajax而言,axios作为数据请求及响应的Promise的实现版本,给vue提供了更符合最新ECMAscript特性,详细可以查看axios特性。
因此,vue更倾向用axios而不用ajax