Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome上的XMLHttpRequest进度更新需要更细粒度_Javascript_Angularjs_Google Chrome_Web - Fatal编程技术网

Javascript chrome上的XMLHttpRequest进度更新需要更细粒度

Javascript chrome上的XMLHttpRequest进度更新需要更细粒度,javascript,angularjs,google-chrome,web,Javascript,Angularjs,Google Chrome,Web,我正在为angular js开发一个上传程序,可以给我进度更新。然而,下面的代码在chrome上运行,对于小于3MB的文件,在开始发送之前会触发一个进度更新,并且事件数据表明所有字节都已上载。然后需要一段时间(最多30秒)才能实际发送文件数据(并且在实际上传过程中不会触发进一步的进度事件)。如果我使用一个更大的文件,我将得到两个或三个事件。在firefox上,对于2MB文件,我将获得大约6个进度事件。有人知道是否有办法调整这些更新的粒度来解决这个问题吗。对我来说,这个功能基本上是无用的(在chr

我正在为angular js开发一个上传程序,可以给我进度更新。然而,下面的代码在chrome上运行,对于小于3MB的文件,在开始发送之前会触发一个进度更新,并且事件数据表明所有字节都已上载。然后需要一段时间(最多30秒)才能实际发送文件数据(并且在实际上传过程中不会触发进一步的进度事件)。如果我使用一个更大的文件,我将得到两个或三个事件。在firefox上,对于2MB文件,我将获得大约6个进度事件。有人知道是否有办法调整这些更新的粒度来解决这个问题吗。对我来说,这个功能基本上是无用的(在chrome上),因为大多数文档都没有那么大。谢谢

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);
    }
}  
可能重复的