1

以下代码下载多个文件,但进度条未更新。如果我删除循环并仅下载一个文件,它会更新。甚至进度条以前也可以用于多个文件,但不知道我现在做错了什么。我也试过把 var fileTransfer = new FileTransfer(); 外环

for(i=0;i<lesson_audio.length;i++){
        var fileTransfer = new FileTransfer();
        var filePath = fs_path+"/"+lesson_audio[i];

        var uri = encodeURI("http://myurl/"+lesson_audio[i]);

                fileTransfer.onprogress = function(progressEvent) {
                    perc = Math.floor((progressEvent.loaded / progressEvent.total) * 100);
                    $('#progress-bar').val(perc); 
                    $('#progress-bar').slider('refresh');
                }
                fileTransfer.download(
                    uri,
                    filePath,
                    function(entry) {
                       $("#progress-text").html($("#progress-text").html() + "download complete:" + entry.fullPath + "\n");
                    },
                    function(error) {
                        $("#progress-text").html($("#progress-text").html() + "download error:" + error.source + "\n")

                    }
                );

    }
4

1 回答 1

0

您是否考虑过下载包含您要下载的所有文件的文件?就像一个文件映射。您正在下载一个文件,将其读出,然后将所有条目(您要下载的文件)放入一个数组中。因此,您有一个要下载的文件条目数组,并且每次下载文件(使用 pop)时,该数组都在缩小。然后,您可以显示实际文件的进度以及要下载的所有文件的总进度,因为您知道文件映射数组在开始时的长度并删除每个成功下载的条目。

西蒙麦克唐纳写了一个很好的要点在这里

于 2014-02-11T22:52:53.637 回答