我有一个具有导出功能的angularjs应用程序。 导出会动态生成服务器端文件。 此文件的生成可能需要几秒钟到几分钟。 我希望能够为用户提供服务器正在生成文件的某种状态。 即使它只是页面上的微调器,让用户知道正在发生的事情。
然而,我的问题是这个。 我不是在角度中将"GET"请求作为资源。 我只是在设置:
window.location.href
指向将启动文件生成的服务器上的 URL,并将其发送回客户端。
这意味着,如果文件需要 1 分钟来生成浏览器的下载对话框,直到该分钟过去并且文件准备好下载时才会弹出。
有没有办法发出 GET 请求进行文件下载,然后在 get 请求成功时获得回调?
您可以在隐藏的 iframe 中启动文件下载并显示加载器,并在使用 onload 事件处理程序加载 iframe 时隐藏加载器。
下面的示例代码只是为了给你一个想法 -
hiddenIframe.src = url;
loader.show();
hiddenIframe.onload = function() {
loader.hide();
};