Ajax技术能向服务器异步请求额外的数据,会带来更好的用户体验。
Ajax技术核心:XMLHttpRequest对象(简称XHR)。
XHR为向服务器发送请求和解析服务器响应提供了流畅的接口。
一、建立XMLHttpRequest对象
建立XMLHttpRequest对象:
1 var xhr = new XMLHttpRequest();
注:IE7+、Firefox、Opera、Chrome和Safari支持原生XHR对象。
(可是我测试IE5也支持原生XHR对象,多是作了更新)
IE7及以前的版本须要使用MSXML库中的XHR对象。
以下所示,能够兼容几乎全部浏览器:
1 function createXHR() { 2 if(typeof XMLHttpRequest != "undefined"){ 3 return new XMLHttpRequest(); //IE7+、Firefox、Opera、Chrome、Safari 4 } 5 else if(typeof ActiveXObject != "undefined"){ 6 return new ActiveXObject("Microsoft.XMLHTTP"); //IE7及之前版本的浏览器 7 } 8 else{ 9 throw new Error("No XHR object available."); 10 } 11 } 12 var xhr = createXHR();
二、XHR用法php
1 var xhr = createXHR(); //建立XHR对象 2 xhr.onreadystatechange = function(){ //readyState状态改变及触发onreadystatechange事件 3 if(xhr.readyState == 4){ //readyState状态改变可从0到4,4表示全部数据已就绪 4 if((xhr.status >= 200 && xhr.status <300) || xhr.status == 304){ //status为200,响应成功;为304,表示请求的资源未被修改 5 alert(xhr.responseText); //responseText表示响应主体返回的文本 6 } else { 7 alert(“Request was unsuccessful: ” + xhr.status); 8 } 9 } 10 }; 11 xhr.open(“get”, “test.php”, true); //启动一个请求以备发送 12 xhr.send(null); //发送请求