XMLHttpRequest对象用于在后台与服务器交换数据:
在不重新刷新页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器获取数据
在后台向服务器发送数据
所有现代的浏览器都支持XMLHttpRequest(IE7+)
创建XMLHttpRequest对象的语法:
var xmlHttp=new XMLHttpRequest();
老版本的ie5 ie6 使用ActiveX对象:
xmlHttp=new ActiveXObject(‘Microsoft.XMLHTTP’);
var xmlHttp; function creatXmlDoc(url){ xmlHttp=null; if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); }else if(window.ActiveXObject){ xmlHttp=new ActiveXObject(); }else{ alert("your brower don't support XMLHTTP"); } if(xmlHttp!=null){ xmlHttp.onreadystatechange=state_change; xmlHttp.open('GET',url,true); xmlHttp.send(null); } } function state_change(){ if(xmlHttp.readyState==4){//loaded if(xmlHttp.status==200){//200=ok // our code here }else{ alert("Problem retrieving XML data"); } } }
注释:onreadystatechange 是一个事件句柄,当XMLHttpRequest对象的状态发生改变时,会触发此函数。状态从0 ~4 进行变化,仅在状态为4时,我们才执行代码。
open中第三个参数中使用true,规定是否使用异步处理。如果设置这个参数为false,可以省去额外的onreadystatechange代码。
所欲现代浏览器都内建了供读取和操作XML的XML解析器。
解析器把XML转换为XML DOM对象,咳通过javascript操作的对象。
XML命名空间提供避免元素命名冲突的方法。
使用前缀来避免命名冲突
<h:table xmlns:h="http://www.w3.org/TR/html4/"
></h:table> <f:table xmlns:f="http://www.w3school.com.cn/furniture"
></f:table>
两个文档使用不同的名称来命名它们的table元素怒,通过使用前缀,我们创建了两种不同类型<table>元素。
<tablexmlns="http://www.w3school.com.cn/furniture"
>//默认的命名空间 </table>
使用XMLHttpRequest(XHR)对象可以与服务器交互。您可以从URL获取数据,而无需让整个页面刷新。这允许网页咋不影响用户的操作的情况下更新页面局部内容。在AJAX编程中XMLhttpRequest被大量使用。
XMLHttpRequest可以用于获取任何类型的数据,而不仅仅时XML,它甚至支持HTTP以外的协议。