Level 1 XMLHttpRequest
Ajax 和 XMLHttpRequest
Ajax
XMLHttpRequest
,细究起来它们两个是属于不同维度的 2 个概念
AJAX stands for Asynchronous JavaScript and XML. AJAX is a new technique for creating better, faster, and more interactive web applications with the help of XML, HTML, CSS, and Java Script.
AJAX is based on the following open standards:
- Browser-based presentation using HTML and Cascading Style Sheets (CSS).
- Data is stored in XML format and fetched from the server.
- Behind-the-scenes data fetches using XMLHttpRequest objects in the browser.
- JavaScript to make everything happen.
ajax
是一种技术方案,但并不是一种新技术。它依赖的是现有的 CSS/HTML/Javascript
,而其中最核心的依赖是浏览器提供的 XMLHttpRequest
对象,是这个对象使得浏览器可以发出 HTTP 请求
与 接收 HTTP 响应
。
用一句话来总结两者的关系:使用 XMLHttpRequest 对象来发送一个 Ajax 请求。
创建 XMLHttpRequest 对象
所有现代浏览器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都内建了 XMLHttpRequest
对象。
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX
对象:
var xmlhttp;
if (window.XMLHttpRequest)
// code for all new browsers
xmlhttp = new XMLHttpRequest();
else
// code for IE5 and IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
指定回调函数
xmlhttp.onreadystatechange = flushlist;
向主机发送请求
xmlhttp.open("GET", "/programmes", true);
xmlhttp.send();
等待主机应答
监控 XMLHttpRequest 对象的状态变化
function flushlist() {
if ( this.readyState == 4 && this.status == 200 ) {
alert( this.responseText );
} else {
alert( this.statusText );
}
};
- xhr.readyState:XMLHttpRequest 对象的状态,等于 4 表示数据已经接收完毕。
- xhr.status:服务器返回的状态码,等于 200 表示一切正常。
- xhr.responseText:服务器返回的文本数据
- xhr.responseXML:服务器返回的 XML 格式的数据
- xhr.statusText:服务器返回的状态文本。