Javascript chrome上的XMLHttpRequest进度更新需要更细粒度
我正在为angular js开发一个上传程序,可以给我进度更新。然而,下面的代码在chrome上运行,对于小于3MB的文件,在开始发送之前会触发一个进度更新,并且事件数据表明所有字节都已上载。然后需要一段时间(最多30秒)才能实际发送文件数据(并且在实际上传过程中不会触发进一步的进度事件)。如果我使用一个更大的文件,我将得到两个或三个事件。在firefox上,对于2MB文件,我将获得大约6个进度事件。有人知道是否有办法调整这些更新的粒度来解决这个问题吗。对我来说,这个功能基本上是无用的(在chrome上),因为大多数文档都没有那么大。谢谢Javascript chrome上的XMLHttpRequest进度更新需要更细粒度,javascript,angularjs,google-chrome,web,Javascript,Angularjs,Google Chrome,Web,我正在为angular js开发一个上传程序,可以给我进度更新。然而,下面的代码在chrome上运行,对于小于3MB的文件,在开始发送之前会触发一个进度更新,并且事件数据表明所有字节都已上载。然后需要一段时间(最多30秒)才能实际发送文件数据(并且在实际上传过程中不会触发进一步的进度事件)。如果我使用一个更大的文件,我将得到两个或三个事件。在firefox上,对于2MB文件,我将获得大约6个进度事件。有人知道是否有办法调整这些更新的粒度来解决这个问题吗。对我来说,这个功能基本上是无用的(在chr
send: function() {
var document = {
DocumentName: this.fsEntry.file.name
};
var formdata = new FormData();
formdata.append('file', this.fsEntry.file);
formdata.append('metadata', JSON.stringify(document));
this.xhr = new XMLHttpRequest();
this.xhr.addEventListener("loadstart", this.onLoadStart, false);
this.xhr.upload.addEventListener("progress", this.onProgress, false);
this.xhr.addEventListener("load", this.onComplete, false);
this.xhr.open("POST", this.fsEntry.uploadUri, true);
this.xhr.send(formdata);
}
this.onProgress = function(e) {
if (e.lengthComputable) {
console.log("progress: uploaded " + e.loaded + " of " + e.total);
}
}
可能重复的