AJAX 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。
JQuery AJAX 应用详见:jQuery ajax
AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据。
通过在幕后与 web 服务器交换数据,而不是每当用户作出改变时重载整个 web 页面,AJAX 技术可以使网页更迅速地响应。(目的:提高用户体验,较少网络数据的传输量)
Ajax原理:
Ajax使用:
/*1.创建Ajax核心对象XMLHttpRequest(记得考虑兼容性)*/
var xhr=null;
if (window.XMLHttpRequest)
{ // 兼容 IE7+, Firefox, Chrome, Opera, Safari
xhr=new XMLHttpRequest();
} else{ // 兼容 IE6, IE5
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
/*2.向服务器发送请求*/
// method:请求的类型;GET 或 POST
// url:文件在服务器上的位置
// async:true(异步)或 false(同步)
xhr.open(method,url,async);
xhr.send(string); //post请求时才使用字符串参数,否则不用带参数。
//注意:post请求一定要设置请求头的格式内容
xhr.open("POST","test.html",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("fname=Henry&lname=Ford"); //post请求参数放在send里面,即请求体
/*3.服务器响应处理(区分同步跟异步两种情况)*/
//responseText 获得字符串形式的响应数据。
//responseXML 获得XML 形式的响应数据。
//同步处理
xhr.open("GET","info.txt",false);
xhr.send();
document.getElementById("myDiv").innerHTML=xhr.responseText; //获取数据直接显示在页面上
//异步处理(要在请求状态改变事件中处理)
xhr.onreadystatechange=function() {
if (xhr.readyState==4 &&xhr.status==200)
document.getElementById("myDiv").innerHTML=xhr.responseText;
};
XMLHTTPRequest对象:
方法 | 描述 |
---|---|
abort() | 停止当请求 |
getAllResponseHeaders() | 把HTTP请求的所有响应首部作为键/值对返回 |
getResponseHeader("header") | 返回指定首部的串值 |
open("method","URL",[asyncFlag],["userName"],["password"]) | 建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数,是否异步,用户名,密码 |
send(content) | 向服务器发送请求 |
serRequesHeader("header","value") | 把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。设置header并和请求一起发送 ('post'方法一定要 ) |
属性 | 描述 |
---|---|
onreadystatechange | 状态改变的事件触发器,每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数 |
readyState | 请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成 |
responseText | 服务器的响应,返回数据的文本。 |
responseXML | 服务器的响应,返回数据的兼容DOM的XML文档对象 ,这个对象可以解析为一个DOM对象。 |
responseBody | 服务器返回的主题(非文本格式) |
responseStream | 服务器返回的数据流 |
status | 服务器的HTTP状态码(如:404 = "文件末找到" 、200 ="成功" ,等等) |
statusText | 服务器返回的状态文本信息 ,HTTP状态码的相应文本(OK或Not Found(未找到)等等) |
文章评论