XMLHttpRequest

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>元素。

<table xmlns="http://www.w3school.com.cn/furniture">//默认的命名空间
  
</table>
使用XMLHttpRequest(XHR)对象可以与服务器交互。您可以从URL获取数据,而无需让整个页面刷新。这允许网页咋不影响用户的操作的情况下更新页面局部内容。在AJAX编程中XMLhttpRequest被大量使用。
XMLHttpRequest可以用于获取任何类型的数据,而不仅仅时XML,它甚至支持HTTP以外的协议。

原文地址:https://www.cnblogs.com/xiaofenguo/p/12767797.html