账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ajax的onprogress事件下载过程只能触发一次吗
    24
    0

    刚开始用的jq的ajax里面xhr对象绑定onprogress事件的办法,只触发了一次,以为是jq的问题

    var xhrOnProgress=function(fun) {
      xhrOnProgress.onprogress = fun; 
      return function() {
            $.ajaxSettings.xhr();
            var xhr = $.ajaxSettings.xhr();
            if (typeof xhrOnProgress.onprogress !== 'function')
                  return xhr;
            if (xhrOnProgress.onprogress && xhr.upload) {
                  xhr.upload.onprogress = xhrOnProgress.onprogress;
            }
            return xhr;
      }
    }
    
    var formData = new FormData(document.forms[0]);
    $.ajax({
       url : url,
       type : 'POST',  
       data : formData,   //不处理表单数据  
       processData : false,  //不处理
       contentType : false,
       beforeSend:function(){      console.log("start transfer");  },
       success : function(responseStr) {      console.log(responseStr);  }, 
       error : function(responseStr) {      console.log("error");  },  
       xhr:xhrOnProgress(function(e){
       var percent=e.loaded / e.total;//计算百分比
       })
    });
    

    为什么progress事件只触发了一次,不是不停的触发吗,都准备用这个写进度条的

        var xhr=new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            console.log(xhr.responseText);
        }
        xhr.onprogress=function(e){
            console.log(xhr);
            console.log(e)
            console.log(e.loaded);
        }
        xhr.open('get','http://127.0.0.1:8080/db',true);
        xhr.send();
    

    我看各种文档api也都是说ajax上传和下载过程中,会在服务器指定时间间隔触发progress事件。

    是支持下载的,但是我的为什么不行,我纯粹原生js写的ajax也是不行。是还有哪些参数要设置吗,求指教

    请求的json,数据很大,用时我看了估计有20秒左右,所以也不是文件大小问题

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部