zoukankan      html  css  js  c++  java
  • 自定义Ajax类

     1 class ajax{
     2    constructor(){
     3     this.xhr=new XMLHttpRequest();
     4     }
     5     get(url,param,back,asyn=true)
     6     {
     7         this.xhr.open("get",url+'?'+param,asyn);
     8         this.xhr.send();
     9         if(asyn)
    10         {
    11             this.xhr.onreadystatechange=()=>{
    12                 if(this.xhr.readyState==4 && this.xhr.status==200)
    13                 {
    14                     return back(this.xhr.responseText);
    15                 }
    16             }
    17         }
    18         
    19     }
    20     post(url,param,back,asyn=true)
    21     {
    22         this.xhr.open("post",url,asyn);
    23         this.xhr.send(param);
    24         if(asyn)
    25         {
    26             this.xhr.onreadystatechange=()=>{
    27                 if(this.xhr.readyState==4 && this.xhr.status==200)
    28                 {
    29                     return back(this.xhr.responseText);
    30                 }
    31             }
    32         }
    33     }
    34     //文件上传进度显示
    35     formdata(url,target,style,back,asyn=true){
    36         var targetform=document.getElementById(target);
    37         var speedstyle=document.getElementById(style);
    38         var formdata=new FormData(targetform);
    39         this.xhr.open("post",url,asyn);
    40         console.log(speedstyle);
    41         console.log(this.xhr);
    42         this.xhr.upload.onprogress = function(e){
    43         var current = e.loaded;
    44         var total = e.total;
    45         var percent=current/total*100;
    46         speedstyle.style.width=percent+'%';
    47         speedstyle.innerText=Math.floor(percent)+'%';
    48         }
    49       
    50         this.xhr.send(formdata);
    51         if(asyn)
    52         {
    53             this.xhr.onreadystatechange=()=>{
    54                 if(this.xhr.readyState==4 && this.xhr.status==200)
    55                 {
    56                     
    57                     return back(this.xhr.responseText);
    58                 }
    59             }
    60         }
    61     }
    62 }
    63 var Ajax=new ajax();
    <button type="button" class="btn btn-primary btn-block" id='submit' data-toggle="modal" data-target="#myModal">确 定 添 加</button>
    <
    div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <!--<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>--> <h4 class="modal-title" id="myModalLabel2">进度载入</h4> </div> <div class="modal-body" id="modalID2"> <div class="progress"> <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" id="speed2"> 0% </div> </div> </div> <div class="modal-footer" id="footer2"> <!--<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>--> <!--<button type="button" class="btn btn-primary">Save changes</button>--> </div> </div> </div> </div>
     <script src="ajax.js" type="text/javascript" charset="utf-8"></script>
     <script type="text/javascript" charset="utf-8">
         var submit=document.getElementById('submit');
         submit.onclick=()=>{
             Ajax.formdata('../data/insert.php','formid','speed',function(data){
                 var myModalLabel=document.getElementById("myModalLabel");
                 myModalLabel.innerText='上传结果';
                 var modalstyle=document.getElementById("modalID");
                 modalstyle.innerHTML=data;
                 var footer=document.getElementById('footer');
                 footer.innerHTML='<button type="button" class="btn btn-primary" id="clean">继续添加</button>'
                 var clean=document.getElementById('clean');
                 clean.onclick=function(){window.history.go(0);}
                 
                 
             });
         }
    </script>

    效果图:

  • 相关阅读:
    2013第51周四开放杂记
    2013第51周三杂记
    2013第51周二eclipse启动优化
    2013 第51周一纠错
    2013第50周日小结
    国内主流开放平台接口了解
    手机加密那点事儿_数值内存加密
    crontab,想说爱你不easy
    SIP基本呼叫
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/huangcaijin/p/13042519.html
Copyright © 2011-2022 走看看