• 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:



  • 相关阅读:
    基于jdk8+selenium3+chrome86的UI自动化测试
    服务器虚拟化管理解决方案PVM发送c+a+d组合键
    web端测试技巧记录
    redis-基本数据类型及应用场景
    idea编译时报GC overhead limit exceeded
    cmd常用命令
    @property和@属性.setter的用法
    游陶然亭记
    山城
    记京都春节
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12284721.html
Copyright © 2020-2023  润新知