晚上好
我正在编写一个 Java Servlet(Struts 2、Tomcat、JSP 等),它能够进行一些相当复杂的模拟。这些最多可能需要 2 分钟才能完成,并将返回结果图表。计算模拟完成的百分比是微不足道的,因为该过程通过重复相同的计算 1000 次来工作。
我很想知道是否有人曾尝试使用客户端技术来提供对完成百分比的任何估计。即查询 servlet 处理以获得在整个模拟过程中不同点完成的周期数。然后可以在客户端浏览器中显示为一个栏。
如有任何想法、建议和资源,我们将不胜感激。
谢谢,
亚历克斯
最佳答案
在您的数据库中,有一个表来维护模拟列表及其服务器计算的进度。
在您的 Web 应用程序中,使用 AJAX 每隔几秒查询一次服务器(1-20 取决于负载是我想要的)并更新图形进度条。大多数 javascript 库都有简单的基于计时器的 AJAX 函数来完成这类事情。
有一些细节需要弄清楚,例如完成的模拟是否保留在数据库中(可能是有用的日志信息),但总的来说,这应该相当简单。
关于java - 在返回响应之前获取 servlet 请求的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040569/