• 从服务器获取信息的方式


    常用的从服务器获取信息的方式有三种:XmlHttpRequest、动态脚本注入和Multipart XHR

    1、XmlHttpRequest

     let xhr = new XMLHttpRequest();
    // 请求成功回调函数
    xhr.onload = e => {
        console.log('request success');
    };
    // 请求结束
    xhr.onloadend = e => {
        console.log('request loadend');
    };
    // 请求出错
    xhr.onerror = e => {
        console.log('request error');
    };
    // 请求超时
    xhr.ontimeout = e => {
        console.log('request timeout');
    };
    // 请求回调函数.XMLHttpRequest标准又分为Level 1和Level 2,这是Level 1和的回调处理方式
    // xhr.onreadystatechange = () => {
    //  if (xhr.readyState !== 4) {
    //  return;
    //  }
    //  const status = xhr.status;
    //  if ((status >= 200 && status < 300) || status === 304) {
    //  console.log('request success');
    //  } else {
    //  console.log('request error');
    //  }
    //  };
    
    xhr.timeout = 0; // 设置超时时间,0表示永不超时
    // 初始化请求
    xhr.open('GET/POST/DELETE/...', '/url', true || false);
    // 设置期望的返回数据类型 'json' 'text' 'document' ...
    xhr.responseType = '';
    // 设置请求头
    xhr.setRequestHeader('', '');
    // 发送请求
    xhr.send(null || new FormData || 'a=1&b=2' || 'json字符串');
    View Code

    2、动态脚本注入

    var scriptElement = document.createElement('script');
    scriptElement.src = 'http://any-domain.com/javascript/lib.js';
    document.getElementsByTagName('head')[0].appendChild(scriptElement);
    
    function jsonCallback(jsonString){
       var data = eval('(' + jsonString + ')');
      //do something
    }
    
    lib.js 里的内容示例:
    jsonCallback({"status":1,"name":"测试"});
    View Code

    3、Multipart XHR

     通过发送一次XmlHttpRequest请求,从服务器获取到多个资源信息,根据约定的分隔符进行分离,进而呈现对应的资源信息。这种方式可以避开浏览器对http请求数量的限制

  • 相关阅读:
    The Single Responsibility Principle
    MSComDlg.CommonDialogserver不能创建对象错误的解决
    Hadoop的HA机制(Zookeeper集群+Hadoop集群)配置记录
    linux怎样查看port被谁占用
    hadoop配置说明
    C#中的继承与多态还有接口
    MySQL DATE_FORMAT() 函数
    MySQL处理数据库和表的常用命令
    mysql 增加用户
    sql2008连接数据库问题
  • 原文地址:https://www.cnblogs.com/lianjinzhe/p/13332129.html
Copyright © 2020-2023  润新知