zoukankan      html  css  js  c++  java
  • XMLHttpRequest对象用法

    xmlhttprequest is what?

    用户后台与服务器交换数据。

    可以在不重新加载页面的情况下更新网页;

    在页面已加载后从服务器请求数据;

    在页面已加载后从服务器接收数据;

    在后台向服务器发送数据。

    所有现代浏览器都支持XmlHttpRequest对象。


    create xmlhttprequest

    <script text="text/script">
    var xmlhttp;
    function loadXMLDoc(url)
    {
    xmlhttp=null;
    if (window.XMLHttpRequest)
      {// code for all new browsers
      xmlhttp=new XMLHttpRequest();
      }
    else if (window.ActiveXObject)
      {// code for IE5 and IE6
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    if (xmlhttp!=null)
      {
      xmlhttp.onreadystatechange=state_Change;
      xmlhttp.open("GET",url,true);
      xmlhttp.send(null);
      }
    else
      {
      alert("Your browser does not support XMLHTTP.");
      }
    }
    
    function state_Change()
    {
    if (xmlhttp.readyState==4)
      {// 4 = "loaded"
      if (xmlhttp.status==200)
        {// 200 = OK
        // ...our code here...
        }
      else
        {
        alert("Problem retrieving XML data");
        }
      }
    }
    </script>

    注释:onreadystatechange 是一个事件句柄。它的值 (state_Change) 是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。状态从 0 (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时,我们才执行代码。

    为什么使用 Async=true ?

    我们的实例在 open() 的第三个参数中使用了 "true"。

    该参数规定请求是否异步处理。

    True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。

    onreadystatechange 事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。

    通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。

    接收文本

    xmlhttp.responseText;

    //将自定义的text转为xml

    if(window.DOMParser)
    {
         parser = new DOMParser();
         xmlDoc = parser.paseFromString(txt,"text/xml");
    }
    else
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(txt);
    }

    接收xml

    xmlhttp.responseXML.documentElement.getElementsByTagName("");

    请求Head

    xmlhttp.getAllResponseHeaders();

    请求指定Head

    xmlhttp.getResponseHeader("");


    XMLHttpRequest 对象是 W3C 的标准吗?

    任何 W3C 推荐标准均未规定 XMLHttpRequest 对象。

    不过,W3C DOM Level 3 的 "Load and Save" 规范包含了一些相似的功能性,但是还没有任何浏览器实现它们。

  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/YonguiL/p/4422424.html
Copyright © 2011-2022 走看看