Кто-нибудь знает, почему upload.onprogress не работает правильно, если он на отдельной функции?
Код работает правильно (индикатор выполнения медленно перемещается):
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
progress.value = (e.loaded / e.total) * 100;
}
};
но если я включу его в работу, он больше не будет работать:
xhr.upload.onprogress = uploadProgress(event);
function uploadProgress(e) {
if (e.lengthComputable) {
progress.value = (e.loaded / e.total) * 100;
}
}
Во втором коде индикатор выполнения сразу переходит на 100% после завершения загрузки файла, вместо этого переходит на 100% во время загрузки
Итак, я попробовал предоставленное решение, оно действительно работает, если я помещу функцию внутрь. Нет ли способа вывести его за пределы функции?
function uploadFile(blobFile, fileName) {
...
...
// Listen to the upload progress for each upload.
xhr.upload.onprogress = uploadProgress;
// Progress Bar Calculation why it has to be in uploadFile function..
function uploadProgress(e) {
if (e.lengthComputable) {
progress.value = (e.loaded / e.total) * 100;
}
}
uploaders.push(xhr);
xhr.send(fd);
}
//it does not work if I put it outside the function. is there anyway to do this?
function uploadProgress(e) {
if (e.lengthComputable) {
progress.value = (e.loaded / e.total) * 100;
}
}