如何显示 FileReader 加载进度或加载图标?

How to show FileReader load progress or loading icon?

我有一个文件上传控件,它读取 TXT 文件并用文件内容加载 editBox。代码吹奏适用于文件上传控制的 onChange 事件。但我想在加载大数据时显示加载 gif 图标或沙漏图标。例如。如果我尝试加载大约 130K 行的 3Mb 文件,它需要几秒钟才能出现在 inputUsers 编辑框中,然后仍然加载数据。而此时用户可以单击其他控件或关闭页面。那么当我调用 reader.readAsText(file) 时如何显示加载图标; ???

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);

注意:好吧,当您 copy/paste 将非常大的文本放入多行编辑框时,也会发生同样的情况。我需要在列表加载时显示一些内容

试试这个代码

reader.onloadstart = function(event) {
    ShowLoadingBar();
};
reader.onprogress = function(event) {
    if (event.lengthComputable) {
        if (LoadingBarVisible)
            ShowLoadingBar();
        AddProgress();
    }
};
reader.onloadend = function(event) {
    LoadingBarComplete();
};