通知用户在下载servlet中生成文件

时间:2011-01-26 09:17:43

标签: java servlets download long-running-processes

我有一个下载servlet,它生成一个包含一些文件的ZIP,其中一个非常大,然后在响应中发送生成的文件以供下载。

问题在于生成过程非常大,并且在生成de ZIP的步骤和下载步骤(当用户看到下载对话框时)之间可能会经过几秒甚至一分钟。因此,无论如何,我想通知用户该文件正在生成。

我正在考虑的解决方案是执行多个请求,一个用于打开模式窗口,通知用户并在其中,然后自动执行另一个请求到在临时位置生成文件的操作然后,当请求结束,另一个关闭窗口(窗口必须自动关闭),然后在下一步请求下载servlet生成的文件。

如果有人理解我想做什么,我想如果存在更好更清洁的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以触发一个启动生成过程的ajax请求,然后启动其他ajax请求,以便在文件准备好时轮询服务器。如果是 - 将浏览器的位置更改为该文件。否则,显示“加载”消息/图像/..