在加载 jsp 之前必须执行一个繁重的数据库进程。
// jsp
<% new bean().startHeavyProcess(); %>
.
.
.
随着进程的进行,我想使用java脚本
显示一个进度条
。有什么方法可以使进度条与服务器端代码同步工作?我可以知道服务器端代码何时完成执行或即将完成执行吗?
最佳答案
如果您不构建特定于您的应用程序的功能来实现此目的,则无法做到这一点。
我假设繁重的处理是由客户端点击链接启动的?
如果是这样,那么您可以尝试以下操作。
- 用户点击启动繁重处理的链接。
- 服务器返回在上述同一请求中启动的进程的唯一 ID。
- 创建一个单独的界面,您可以在其中通过 ID 查询特定进程的进度。
- 使用 javascript 每 1 秒查询一次界面,了解进程已经进行了多远
- 向用户显示进度条(可能用进度条替换原始链接)
- 当进程达到 100% 时,将用户重定向到新页面。
这种方法要求您拥有某种重型进程管理器,它了解所有正在运行的进程,并可以从中提取进程。
这也许可以通过在数据库中创建一个新表来完成,在该表中存储进程唯一 ID 和每个进程的进度百分比。然后,每个进程都会在进程进行时更新表中的行,并且您只需在其 ID 请求时从表中返回进程值即可。
如果您正在寻找一个好的进度条插件 Jquery 有它:http://jqueryui.com/progressbar/ :)
关于java - 如何使进度条与服务器代码同步工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624308/