AJAX: Ansyc Javascript And Xml (异步请求).html
异步是指基于Ajax的应用与服务器通讯的方法。对于传统的Web应用,每次用户发送请求或向服务器请求得到新数据时,浏览器都会彻底丢弃当前页面,而等待从新加载的页面。在服务器彻底响应以前,用户浏览器将是一片空白,用户的动做必须中断。异步是指用户发送请求后,彻底无须等待,请求在后台发送,不会阻塞用户的当前活动,用户无须等待第一次请求获得彻底响应,就能够当即发送第二次请求。简单的说,异步请求不会刷新当前html页面。jquery
异步指的是服务器端响应数据的获取方式。ajax
同步:spring
异步:chrome
1.同步请求:编程
请求的过程:浏览器(当前的html页面会丢弃) ---> http协议 ---> Web服务器(tomcat)json
响应的过程:Web服务器(tomcat) ---> http协议 --> 返回一个新html页面.浏览器
2.异步请求:tomcat
请求的过程:浏览器(当前的html页面不会丢弃) ---> Ajax引擎(http协议) ---> Web服务器(tomcat)服务器
响应的过程:Web服务器(tomcat) ---> 准备部分数据 --> Ajax引擎(http协议) --> DOM编程.
XMLHttpRequest:内置函数 (msie8+、firefox、chrome、opera).
var xhr = new XMLHttpRequest();
// msie7-
ActiveXObject: 内置函数
var xhr = new ActiveXObject("浏览器的版本号");
// 第一个参数:请求方式(get|post)
// 第二个参数:请求URL
// 第三个参数:异步还同步。true: 异步请求中的异步;false: 异步请求中的同步. (主要是响应数据)
xhr.open("post|get", "请求的url", true|false);
xhr.send();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){ // 读取服务器端的响应数据完成
if (xhr.status == 200){ // 表明服务器响应正常
// 获取响应文本
xhr.responseText;
}
}
};
readyState的五种状态:
0:XMLHttpRequest对象尚未完成初始化。
1:XMLHttpRequest对象开始发送请求。
2:XMLHttpRequest对象的请求发送完成。
3:XMLHttpRequest对象开始读取服务器的响应。
4:XMLHttpRequest对象读取服务器响应结束。
status的状态码:
200:服务器响应正常。
400:没法找到请求的资源。
401:访问资源的权限不够。
403:没有权限访问资源。
404:须要访问的资源不存在。
405:须要访问的资源被禁止。
407:访问的资源须要代理身份验证。
414:请求的URL太长。
500:服务器内部错误。
jQuery核心异步请求方法:
格式:
$.ajax(url, [settings]);
-- 第一个参数:请求URL
-- 第二个参数:settings是一个json格式js对象(异步请求设置对象).
$.ajax({
url : "", // 请求URL
type : "get|post", // 发送请求的方式
data : "key=value&key=value|{key:value,key:value}|[{key:value,key:value},{key:value,key:value}]", // 请求参数
dataType : "text|html|xml|json|script|jsonp", // 服务器端响应回来的数据类型
async : true|false, // 异步仍是同步
success : function(data){ // 异步请求成功须要回调的函数
// data : 响应数据(jquery已经处理好的响应数据)
},
error : function(XMLHttpRequest, textStatus, errorThrown){ // 异步请求的失败
// XMLHttpRequest : 异步请求的核心函数
// textStatus : 文本状态
// errorThrown : 错误缘由
}
});
//发送get请求
$.get(url, data, function(data, status){
// status(状态码): success 、error
// data : 响应数据
}, dataType);
说明:
第1个参数:请求URL
第2个参数:请求参数
第3个参数:回调函数
第4个参数:服务器端响应回来的数据类型
//发送post请求
$.post(url, data, function(data, status){
// status(状态码): success 、error
// data : 响应数据
}, dataType);
说明:
第1个参数:请求URL
第2个参数:请求参数
第3个参数:回调函数
第4个参数:服务器端响应回来的数据类型