我有一个 jsp 页面,当下拉列表包含一堆不同的表单名称时,该页面调用 servlet。如果用户选择生成所有表单,则 servlet 将调用包含循环的 java 文件。一次运行每个报告生成。整个过程大约需要 7 分钟,因为这些报告非常大。
我的问题是,在保持相同的流程(jsp -> servlet -> java代码)的情况下,我可以使用ajax获取进度状态吗?我想做的是找出循环正在进行的迭代,找出将数据写入excel(这是所有表单的格式)的函数是否已经启动,并将这些信息写入屏幕以供用户查看看到这样他们就不会猜测在任何给定时间发生的事情。
此外,我们目前将所有这些信息打印到 eclipse 中的控制台,以便在测试时我们至少可以知道它正在工作。我不确定这是否重要。
编辑:如果需要,我可以提供代码,但实际上jsp包含一个下拉列表,servlet获取该列表并获取所选选项的值(又名report1、report2、report 20...)并发送该值作为字符串传递给 java 代码。调用的java函数是ReportAutomator.start(String reportNum){forloophere}。 for 循环调用各种函数来生成一个报告对象,该对象被转发到一个新的 java 文件,该文件进行更多处理,然后再次转发到一个最终的 java 文件,该文件解压该对象并将所有信息写入 Excel。
我实际上无法提供实际的代码,但如果有必要,我可以尝试制作一个虚拟示例。抱歉,感谢您的帮助。
最佳答案
一旦了解细节,确定特定任务的进度是一件令人惊讶的复杂事情,但是有一个 jquery with ajax更新进度条。
对于网络应用程序,我推荐 AJAX route它适合向用户指示正在发生的事情。只需让某种微调器在提交页面时可见,然后在渲染时再次隐藏
关于Java Ajax 显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530118/