我正在尝试设置上传的进度(这只是btw的图像)。 我使用了XMLHttpRequest,并且几乎和互联网上的其他人一样,如下所示:
var upProgress = function(e) {
console.log(e.loaded, e);
};
var fd = new FormData();
fd.append('image', file);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', upProgress, false);
xhr.open('POST', _Utilities.urlApi + url);
xhr.send(fd);
图像上传,该部分有效。
但是,进度事件(在Firefox 31和Chrome 36中)仅在e.loaded = e.total = file' size
时触发一次(在开头)。它适用于IE 11,该事件被触发十几次同一张图片(约2.7Mo)。
我迷失在这里,我在网上搜索但没找到任何我还没有做过的事情。
例如,e.loaded
和e.total
在lengthComputable = false
时应该相同,而不是这里的情况。
以上console log
在Chrome和Firefox中仅显示1行,以下是progress事件元素的部分内容:
lengthComputable: true
loaded: 2797378
total: 2797378
totalSize: 2797378
type: "progress"
在IE上然而我得到了这个(我记录了加载的值和事件的元素):
149 [object ProgressEvent]
131072 [object ProgressEvent]
262144 [object ProgressEvent]
...
2752512 [object ProgressEvent]
2797384 [object ProgressEvent]
这意味着它按预期工作。
我不知道是什么原因引起的。 以上所有都在我的机器上进行了测试。我遇到了一些只在某些机器或设置上遇到问题的人,一位朋友尝试使用它的机器而且它也是这样(Windows 8.1和Chrome),另一位朋友尝试了相同的结果(MACOS和Chrome)。
如果您有任何想法,请提前分享!
答案 0 :(得分:1)
请从这里检查我的答案XMLHttpRequest upload progress not firing correctly,我也有这个,经过痛苦的时间后,这只是我的antivirus program
...也许它与你的相关吗?