zoukankan      html  css  js  c++  java
  • JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象

    XHR对象

      使用XMLHttpRequest (XHR)对象可以与服务器交互。您可以从URL获取数据,而无需让整个的页面刷新。这使得Web页面可以只更新页面的局部,而不影响用户的操作。XMLHttpRequest在 Ajax 编程中被大量使用

      XMLHttpRequest 支持同步和异步通信。但是,一般来说,出于性能原因,异步请求应优先于同步请求同步请求阻止代码的执行,这会导致屏幕上出现“冻结”和无响应的用户体验

    属性和方法

      在使用XHR之前,我们先大体了解一下XHR的属性和方法。

      

    请求模型

      请求的步骤,首先构造一个XHR对象,然后,初始化一个请求,这里我们需要填写三个重要的参数:

    • 请求方法(method):GET/POST/OPTIONS....
    • 请求路径(url):服务器的处理路径
    • 是否异步(async):为false表示同步请求,默认为异步。

      最后使用send方法发送请求。

    1、请求数据

      send方法发送请求数据,可以是以下几种:

    xhr.send(null);
    // xhr.send('string');
    // xhr.send(new Blob());
    // xhr.send(new Int8Array());
    // xhr.send(document);

    2、处理响应结果

      xhr.readyState表示请求的状态码,为4表示请求完成,当请求完成后,xhr.status表示响应状态,为200表示响应成功。最后就可以使用xhr.response,来查看相应信息

    3、异步请求

      对于异步请求,发送请求并不会影响后续代码运行。当请求结束后会调用对应的事件处理函数来处理响应结果,诸如onload、onabort、onerror..查看更多

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "/bar/foo.txt", true);
    xhr.onload = function (e) {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          console.log(xhr.responseText);
        } else {
          console.error(xhr.statusText);
        }
      }
    };
    xhr.onerror = function (e) {
      console.error(xhr.statusText);
    };
    xhr.send(null);

    4、同步请求

      同步请求的话,发送请求后在得到响应信息前会中断代码运行

    var request = new XMLHttpRequest();
    request.open('GET', 'http://www.mozilla.org/', false); 
    request.send(null);
    if (request.status === 200) {
      console.log(request.responseText);
    }

     参考

     

  • 相关阅读:
    js的style.width取不到元素的宽度值
    git bush 无法使用箭头进行选择
    exports module.exports export export default之间的关系
    vue前端项目中excel文件下载
    vue -- router路由跳转错误 , NavigationDuplicated
    node url模块
    SSO CAS 单点系列
    离线电脑搭建开发环境
    Shader的语法
    NavMesh名字、层索引、层值之间的转换
  • 原文地址:https://www.cnblogs.com/MrSaver/p/11076355.html
Copyright © 2011-2022 走看看