zoukankan      html  css  js  c++  java
  • Soulwail

    XMLHttpRequest 属性解读

    首先在 Chrome console 下创建一个 XMLHttpRequest 实例对象 xhr。如下所示:

    XMLHttpRequest

    inherit

    试运行一下代码。

    var xhr = new XMLHttpRequest(), i = 0;
    
    for (var key in xhr) {
      if (xhr.hasOwnProperty(key)) {
        i++;
      }
    }
    
    console.log(i); // 0
    console.log(XMLHttpRequest.prototype.hasOwnProperty('timeout')); // true
    

    可见 XMLHttpRequest 实例对象没有自由属性。实际上,它的所有属性均来自于 XMLHttpRequest.prototype

    追根溯源,XMLHttpRequest 实例对象具有如下的继承关系。(下面以 a « b 表示 a 继承 b)

    xhr « XMLHttpRequest.prototype « XMLHttpRequestEventTarget.prototype « EventTarget.prototype « Object.prototype

    由上,xhr 也具有 Object 等原型中的所有方法,如 toString 方法。

    大专栏  Soulwailpt highlighter-rouge">
    xhr.toString(); // "[object XMLHttpRequest]"
    

    通常,一个 xhr 实例对象拥有 10 个普通属性和 9 个方法。

    readyState

    只读属性,readyState 属性记录了 ajax 调用过程中所有可能的状态。它的取值简单明了,如下:

    readyState 对应常量 描述
    0 (未初始化) xhr.UNSENT 请求已建立,但未初始化(此时未调用 open 方法)
    1 (初始化) xhr.OPENED 请求已建立,但未发送(已调用 open 方法,但未调用 send 方法)
    2 (发送数据) xhr.HEADRS_RECEIVED 请求已发送(send 方法已调用,已收到响应头)
    3 (数据传送中) xhr.LOADING 请求处理中,因响应内容不全,这时通过 responseBody 和 responseText 获取可能会出现错误
    4 (完成) xhr.DONE 数据接受完毕,此时可以通过 responseBody 和 responseText 获取完整的响应数据

    注意,readyState 是一个只读属性,想要改变它的值是不可行的。

    待补充。。。

    参考文档

    Ajax知识体系大梳理


    Tags:



  • 相关阅读:
    [树形DP]Luogu P1131 [ZJOI2007]时态同步
    [状压DP]JZOJ 1303 骑士
    [DFS]JZOJ 1301 treecut
    [最小费用最大流]JZOJ 4802 探险计划
    [KMP][倍增求LCA]JZOJ 4669 弄提纲
    [DP]JZOJ 1758 过河
    列表生成式和生成器表达式
    协程函数
    生成器
    迭代器
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12284721.html
Copyright © 2011-2022 走看看