另存为 blob 需要很长时间才能从给定 url 下载文件

Save as blob takes too long to download the file from given url

我编写了以下服务来保存来自给定 URL 的文件。

(function() {
    angular.module('SOME_APP')
        .service("downloadService", downloadService);

        function downloadService($http){

            var downloadFileFromUrl = downloadFileFromUrl;

            function downloadFileFromUrl(url){

                if(!url.length){
                    //TO-DO handle the error
                }

                else{
                    //find the file name and extension, to save it as:
                    var fileName;
                    for(var i=url.length; i>=0; i--){
                        if(url[i]=='/'){
                            fileName=url.slice(i+1, url.length);
                            console.log(fileName);
                            break;
                        }
                    }
                    $http({
                        url: url,
                        method: "GET",
                        responseType: 'arraybuffer'
                        }).success(function (data) {
                            var blob = new Blob([data], {type: '*/*'});
                            saveAs(blob, fileName);
                        }).error(function (data) {
                            console.log(data);
                            //TO-DO error handling
                    });
                }
            }

            return {
                    downloadFileFromUrl : downloadFileFromUrl
            }
        }
}());

当我调用服务时,服务首先下载文件,下载完成后,然后在浏览器中显示下载(进度为100%)。我如何让它正常工作? (浏览器开始下载,逐步显示进度)

我的目的是从给定的 url 下载文件。我使用具有下载属性的 HTML5 锚标记实现它:

在index.html中:

               <a id='downloadTag' href="" download hidden></a>

服役中:

                document.getElementById("downloadTag").href=url;
                document.getElementById("downloadTag").click();

这解决了我的问题。