0

我有一个具有导出功能的 angularjs 应用程序。导出在服务器端动态生成文件。此文件的生成可能需要几秒钟到几分钟。我希望能够为用户提供某种服务器正在生成文件的状态。即使它只是页面上的一个微调器,让用户知道正在发生某些事情。

然而我的问题是这个。我没有将 'GET' 请求作为 Angular 的资源。我只是设置:

window.location.href

指向将开始文件生成并将其发送回客户端的服务器上的 url。

这意味着如果文件需要 1 分钟来生成浏览器的下载对话框,直到该分钟过去并且文件准备好下载时才会弹出。

有没有办法发出 GET 请求以下载文件,然后在 get 请求成功时获得回调?

4

1 回答 1

1

您可以在隐藏的 iframe 中开始下载文件并显示加载程序,并在使用 onload 事件处理程序加载 iframe 时隐藏加载程序。

下面的示例代码只是为了给你一个想法 -

hiddenIframe.src = url;
loader.show();

hiddenIframe.onload = function() {
   loader.hide();
};
于 2013-11-11T15:57:19.203 回答