我有一个下载 servlet,它生成一个包含一些文件的 ZIP,其中一个文件相当大,然后在响应中发送生成的文件以供下载。
问题是生成过程相当大,在生成 de ZIP 的步骤和下载步骤(当用户看到下载对话框时)之间可能会经过很多秒甚至一分钟。所以我想无论如何通知用户文件正在生成。
我正在考虑的解决方案是执行多个请求,一个用于打开一个模式窗口,通知用户并在其中,然后自动对在临时位置生成文件的操作执行另一个请求,然后,当请求结束时,另一个请求关闭窗口(窗口必须自动关闭),然后向 servlet 请求下载最后一步中生成的文件。
如果有人理解我想要做什么,我希望是否存在更好、更干净的解决方案。
最佳答案
您可以触发一个 ajax 请求,该请求将启动生成过程,然后其他 ajax 请求将轮询服务器(如果文件已准备好)。如果是 - 将浏览器的位置更改为该文件。否则,显示“正在加载”消息/图像/..
关于java - 通知用户文件正在下载 servlet 中生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802874/