如何在前端获取一个文件的加载进度

求助求助,我想在前端获取一个json文件的加载进度,如何获取呢?
原本用xhr.loaded可以,但服务器开了gzip后,就获取不了了

阅读 6.7k
4 个回答

一般是这样做的:

if (event.lengthComputable) {
      var percentComplete = event.loaded / event.total;
    }

但启用GZIP后,你会找不到 Content-length的值,就没法通过普通方法获取进度了。
response中也会看到:Transfer-Encoding:chunked 该编码将实体分块传送并逐块标明长度,直到长度为0块表示传输结束。

ajax除了上传文件可以得到进度外, 其他普通的数据都得不到进度

可以用ajax论询另一个请求地址, 由服务端返回读取的字节数 / 总字节数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题