Javascript 如何防止上传切片文件时跳过进度条?
我使用的是XMLHttpRequest();在循环中上载切片文件Javascript 如何防止上传切片文件时跳过进度条?,javascript,upload,progress-bar,blob,Javascript,Upload,Progress Bar,Blob,我使用的是XMLHttpRequest();在循环中上载切片文件 function upload(blobOrFile, part, name, size) { var formdata = new FormData(); var xhr = new XMLHttpRequest(); ... var parallel_uploads=0; } 在该函数中,我使用以下代码显示进度条: xhr.onreadystatechange = funct
function upload(blobOrFile, part, name, size) {
var formdata = new FormData();
var xhr = new XMLHttpRequest();
...
var parallel_uploads=0;
}
在该函数中,我使用以下代码显示进度条:
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
parallel_uploads = parallel_uploads + 1;
}
}
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var total_parts = Math.ceil(size / 209715);
var cur_part = (evt.loaded / evt.total) / total_parts;
var percentComplete = cur_part + parallel_uploads / total_parts;
$('#bars progress').val(percentComplete);
}
}, false);
有关xhr状态的更多信息
进度条正在跳过,尤其是在上载小文件时。在Chrome中,它向前和向后的跳跃比在Firefox中更明显。我认为问题在于并行上传的检测出了问题。我尝试了所有xhr状态,但没有任何效果
那么,如何从所有blob中获得正确的上传字节数呢 我使用了以下方法,这样上传小文件时不会跳过太多内容:
if(total_parts>20){
//the code from above
}
else{
percentComplete = parallel_uploads / total_parts;
}