前端异步编程全套:xmlhttprequest > ajax > promise > async/await

异步编程

  1. 同步与异步区别

    • 同步:按顺序,依次执行,向服务器发送请求-->客户端做其他操作

    • 异步:分别执行,向服务器发送请求==>同时执行其他操作

原生xmlhttprequest

  • 四步骤

    1. 创建ajax对象

      var a=new xmlhttprequest();
    2. 设定数据的传输方式(get、post),打开连接open()

      ajax对象.open("method","url","同步false/异步true")
    3. 获得响应数据

      属性 描述
      onreadystatechange 当readystate改变时就会调用该函数
      responsetext 获得字符串形式的响应数据
      responsexml 获得xml的形式的响应数据
      readystate 0:请求未初始化 1:服务器连接已建立 2:请求处理中 3:请求处理中 4:请求已完成,且响应已就绪
      status 200:ok 404:未找到页面
    4. 发送https请求:ajax.send()

  • 实际操作数据交换格式【不能跨域】:

    • 获取xml文件的内容,美观的渲染到页面

    • <button>获取数据</button>
          <table></table>
          <script>
              document.getElementsByTagName("button")[0].onclick=function(){
                  var ajax=new XMLHttpRequest;
                  ajax.open("get","work1.xml",true);
                  ajax.onreadystatechange=function(){
                      if(ajax.status==200&&ajax.readyState==4){
                          xixi(ajax.responseXML);
                      }
                  }
                  ajax.send()
              }
              function xixi(obj){
                          var table="<table><tr><th>姓名</th><th>年龄</th><th>地址</th></tr>"
                          var xml=obj.getElementsByTagName("xi");
                          for(i=0;i<xml.length;i++){
                              table+=`<tr><td>${xml[i].getElementsByTagName("name")[0].childNodes[0].nodeValue}</td>
                                      <td>${xml[i].getElementsByTagName("age")[0].childNodes[0].nodeValue}</td>
                                      <td>${xml[i].getElementsByTagName("address")[0].childNodes[0].nodeValue}</td></tr>`
                          }
                          document.getElementsByTagName("table")[0].innerHTML=table;
                 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值