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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue里$set 在xhr.onprogress 改变进度条宽度只更新一次
    35
    0

    以下$set只更新了一次 只有在上传100%的时候更新一次视图, 数据是有在不停更新,但是dom只更新了 一次 为啥啊

          file.xhr.upload.onprogress = function(evt) {
            if (evt.lengthComputable) {
              let precent = (evt.loaded) / (evt.total) * 100 + '%'
              that.$set(file, 'progress', precent)
              let nt = new Date().getTime()
              let pertime = (nt - ot) / 1000 // 计算出上次调用该方法时到现在的时间差,单位为s
              ot = new Date().getTime()
              oloaded = 0 // 重新赋值时间,用于下次计算
              let perload = evt.loaded - oloaded // 计算该分段上传的文件大小,单位b
              oloaded = evt.loaded // 重新赋值已上传文件大小,用以下次计算
             // 上传速度计算
              let speed = perload / pertime// 单位b/s
              let bspeed = speed
              let units = 'b/s'// 单位名称
              if (speed / 1024 > 1) {
                speed = speed / 1024
                units = 'KB/s'
              } else if (speed / 1024 > 1) {
                speed = speed / 1024
                units = 'M/s'
              }
              speed = speed.toFixed(1)
              that.$set(file, 'speed', speed + units)
              if (bspeed === 0) {
                that.$set(file, 'bspeed', true)
              }
              console.log(file.progress)
            }
          }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部