zoukankan      html  css  js  c++  java
  • ajax获取上传进度

    找了好久的获取上传进度---记录一下

    原文地址https://blog.csdn.net/Irene1991/article/details/80773346

    $.ajax({
      type: "post",
      url: uploadUrl,
      data: formData,
      processData: false,
      contentType: false,
      xhr : function() { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数
        myXhr = $.ajaxSettings.xhr();
        if (myXhr.upload) { //检查upload属性是否存在
         //绑定progress事件的回调函数
          myXhr.upload.addEventListener(
            'progress',
            progressHandlingFunction,
            false);
          }
          return myXhr; //xhr对象返回给jQuery使用
        },
      beforeSend: function() {
        ot = new Date().getTime();   //设置上传开始时间
        oloaded = 0;//设置上传开始时,以上传的文件大小为0
        console.log("开始上传")
      },
      success: function (data) {
        console.log("上传成功")
      },
      error: function (e) {
        console.log("上传失败")
      }
    });
    function progressHandlingFunction(evt) {
        var nt = new Date().getTime();//获取当前时间
        var pertime = (nt-ot)/1000; //计算出上次调用该方法时到现在的时间差,单位为s
        ot = new Date().getTime(); //重新赋值时间,用于下次计算
        var perload = evt.loaded - oloaded; //计算该分段上传的文件大小,单位b
        oloaded = evt.loaded;//重新赋值已上传文件大小,用以下次计算
        //上传速度计算
        var speed = perload/pertime;//单位b/s
        var bspeed = speed;
        var units = 'b/s';//单位名称
        if(speed/1024>1){
            speed = speed/1024;
            units = 'k/s';
        }
        if(speed/1024>1){
            speed = speed/1024;
            units = 'M/s';
        }
        speed = speed.toFixed(1);
        //剩余时间
        var resttime = ((evt.total-evt.loaded)/bspeed).toFixed(1);
        var percent = evt.loaded / evt.total * 100;
        console.log('当前速度:'+speed+units+',剩余时间:'+resttime+'s,当前进度:'+percent.toFixed(2)+"%")
    }
  • 相关阅读:
    华为鲲鹏服务器测试
    gcc反汇编测试
    信息安全系统设计与实现:第五章学习笔记
    C语言实现ls之myls改进
    C语言编程实现mystat
    基于openEuler的OpenSSL编译安装和编程实践
    团队作业(三):确定分工
    centos的网络配置及克隆操作要点
    Flink特点分析
    机器学习之线性回归模型
  • 原文地址:https://www.cnblogs.com/nixu/p/13454129.html
Copyright © 2011-2022 走看看