Как показать прогресс загрузки файла FileReader или значок загрузки?

1

У меня есть элемент управления загрузкой файлов, который читает TXT файл и загружает editBox с содержимым файла. Удар кода отлично подходит для события onChange для управления загрузкой файлов. Но я хочу показать значок загрузки gif или значок песочных часов при загрузке больших данных. Например, если я попытаюсь загрузить файл 3Mb с примерно 130K строк, потребуется несколько секунд, чтобы появиться в поле ввода Inputssers, а затем загрузите данные. Хотя на этот раз пользователи могут щелкнуть другие элементы управления или закрыть страницу. Итак, как я могу показать значок загрузки при вызове reader.readAsText (файл); ???

var fileUploadControl = dojo.query("[id$=':fileUploadControl']")[0];
var file = fileUploadControl.files[0];

var reader = new FileReader();
reader.onload = function(e) {
    dojo.query("[id$=':inputUsers']")[0].value = reader.result;
}
reader.readAsText(file);

ПРИМЕЧАНИЕ: хорошо, это происходит, когда вы копируете/вставляете очень большой текст в многострочный editBox. Мне нужно показать что-то, пока список загружается

Теги:
dojo

1 ответ

0
Лучший ответ

Попробуйте этот код

reader.onloadstart = function(event) {
    ShowLoadingBar();
};
reader.onprogress = function(event) {
    if (event.lengthComputable) {
        if (LoadingBarVisible)
            ShowLoadingBar();
        AddProgress();
    }
};
reader.onloadend = function(event) {
    LoadingBarComplete();
};
  • 0
    Спасибо, мистер Аллан. Это прекрасно работает. Но вместо reader.onprogress = function (event) {ShowLoadingBar (); }; Я поставил: reader.onloadstart = function (event) {ShowLoadingBar (); };
  • 1
    К сожалению, это была опечатка ---- и очень приветствуем! : D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню