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