Ajax全称为:Asynchronous JavaScript + XMLjavascript
Ajax技术的核心是XMLHttpRequest对象(简称XHR),XHR为向服务器发送请求和解析服务器相应提供了流畅的接口,能以异步方式从服务器取得更多信息,意味着用户单击后,能够没必要刷新页面也能取得新的数据,也就是说,可使用XHR对象取得新数据,而后再经过DOM将新数据插入到页面中。另外,虽然名字中包含了XML的成分,但Ajax同窗与数据格式无关,这种技术就是无需刷新页面便可从服务器取得数据,但也不必定是XML数据java
Ajax是由下列几种技术组合而成:ajax
一、运用HTML和CSS来实现页面,表达信息浏览器
二、使用XMLHttpRequest和Web服务器进行数据的异步通讯bash
三、运用JavaScript操做DOM实现动态局部刷新服务器
简单来讲就是经过XmlHttpRequest对象来向服务器发异步请求,从服务器得到数据,而后用javascript来操做DOM而更新页面。这其中最关键的一步就是从服务器得到请求数据异步
XmlHttpRequest是ajax的核心机制,IE5是第一款引入XHR对象的浏览器,在IE5中,XHR对象是经过MSXHML库中的一个ActiveX对象实现的async
建立一个XMLHttpRequest对象:函数
var xhr = new XMLHttpRequest();复制代码
对象属性:post
(1)onreadystatechange 每次状态改变所触发事件的事件处理程序。
(2)responseText 从服务器进程返回数据的字符串形式。
(3)responseXML 从服务器进程返回的DOM兼容的文档数据对象。
(4)status 从服务器返回的数字代码,好比常见的404和200
(5)status Text 伴随状态码的字符串信息
(6)getAllResponseHeader() 获取全部的相应报头
(7)getResponseHeader() 查询响应中的某个字段的值
(8)readyState 对象状态值
0 (未初始化) 对象已创建,可是还没有初始化(还没有调用open方法)
1 (初始化) 对象已创建,还没有调用send方法
2 (发送数据) send方法已调用,可是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,由于响应及http头不全,这时经过responseBody和 responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时能够经过经过responseXml和responseText获取完整的回应数据
xhr.open("GET",url,true);
xhr.send();复制代码
open( method, url, async ) 函数支持三个参数
method: 请求方式,GET或POST
url: 请求的url
async: true(异步)/false(同步),默认值为true
send( string ) 函数的参数只有请求方式为post时用到,即咱们的请求参数
xhr.onreadystatechange = function (){
if(xhr.readyState == "4" && xhr.status == "200") {
//请求成功
var data = xhr.responseText;
}else {
//异常捕获
console.log(xhr.status);
}
}复制代码
以上即为ajax的原理及原生基础实现