0

有没有这样的方法/方法/策略来检测文件的下载是否完成?..我的问题是这样的。

场景:当点击报告生成器按钮时,会出现一个加载轮图标,因为生成电子表格需要一段时间......现在,当下载完成并且电子表格保存在客户端机器中时,加载轮图标仍然存在那里正在旋转..我想到删除那个纺车的唯一方法是检测下载是否完成然后隐藏纺车..那怎么办?:使困惑:

在将我的问题标记为重复之前请注意:当我按下按钮时,我正在电子表格中写入一个文件,然后它会自动/强制下载。它不像典型的静态文件下载

4

2 回答 2

1

这种类型的长时间运行的流程不太适合典型的 Web 请求/响应工作流。是的,它会起作用......但我相信存在问题并且用户体验并不理想。我更好的工作流程是执行以下操作之一:

  1. 缓存报告。如果报告中的数据可能在一段时间内(例如 1 天)过时,则设置一个 cron 来生成报告,然后将缓存的报告返回给用户。用户体验将立即下载。

  2. 如果需要动态生成报告,则让用户请求报告并立即返回结果。稍后通过通知系统(假设他们在您的网站上有仪表板或其他东西)或电子邮件(在请求报告时必须为您提供电子邮件地址)提供报告。

我认为这两个选项提供了更好的用户体验。

于 2013-09-07T15:38:49.180 回答
0

我同意 rcravens 的回答,但会在选项 2 中添加以下内容:通过单击 »Download« 按钮,您可以在服务器上调用电子表格的生成并将其存储在临时目录中。通过 AJAX(最好是 webworkers),您通知您的用户生成正在进行中并不断检查文件的状态。在检查并返回错误时,显示你的轮子。如果生成完成,停止轮子并通过 JavaScript 调用下载。

如果可以的话,如果你向用户展示你的电子表格生成的进度条,体验会更好,这样他就知道他等待的原因和时间。

希望有帮助。

于 2013-09-07T15:50:41.873 回答