gpt4 book ai didi

java - Struts2 + jQuery - 定期向客户端发送更新

转载 作者:行者123 更新时间:2023-12-02 08:36:55 27 4
gpt4 key购买 nike

我正在我的网络应用程序中实现一项功能,以便客户端可以通过输入一些数据并单击提交按钮来生成报告。

问题在于生成报告需要花费大量时间,并且如果用户输入的数据错误,则可能无法生成报告。

完整的报告生成任务有许多子任务,我希望当客户按下提交时,然后在该页面下方我想显示拆分为各种子任务的报告生成任务的状态/进度,例如

- Validating input data ------ Done
- Fetching the data ------ In Progress
and so on,

如何在 Web 层使用 Struts2、jQuery 来实现此目的?

任何帮助将不胜感激。

谢谢

最佳答案

我们也遇到了类似的问题。交易通常需要 20 秒,有时甚至超过一分钟。我们认为会有更简单的解决方案,但最终我们得到了这样的方案,

  1. 当收到长时间运行的请求时,将创建一个 session 并生成一个新线程来处理该请求。
  2. 立即返回一个页面,其中包含显示“正在收集数据...”的文本。该页面包含一个计时器,每秒刷新一次。重新加载 URL 在查询参数中包含 session ID(我们不使用 HttpSession)。
  3. 当操作处理程序看到带有 session ID 的请求时,它知道 session 已启动,检查工作线程正在更新的状态变量。如果未完成,它会使用新状态“正在从 DB1 检索数据...”更新页面。重新加载时会出现闪烁。如果您愿意,可以使用 AJAX 来更新状态。
  4. 当工作线程完成且页面已准备好交付时,调用仅返回结果。

我们在负载平衡器方面遇到了一些问题。为了使该方案发挥作用,每次重新加载都必须返回到同一服务器。幸运的是,负载均衡器支持基于我们的 session ID 的粘性路由。

关于java - Struts2 + jQuery - 定期向客户端发送更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com