求助求助,我想在前端获取一个json文件的加载进度,如何获取呢?
原本用xhr.loaded可以,但服务器开了gzip后,就获取不了了
一般是这样做的:
if (event.lengthComputable) {
var percentComplete = event.loaded / event.total;
}
但启用GZIP后,你会找不到 Content-length
的值,就没法通过普通方法获取进度了。
response中也会看到:Transfer-Encoding:chunked
该编码将实体分块传送并逐块标明长度,直到长度为0块表示传输结束。
可以用ajax论询另一个请求地址, 由服务端返回读取的字节数 / 总字节数
这是之前在知乎看到的答案链接描述
ajax除了上传文件可以得到进度外, 其他普通的数据都得不到进度