在加载jsp之前必须执行繁重的数据库进程。
// jsp
<% new bean().startHeavyProcess(); %>
.
.
.
随着流程的进行,我想使用progress bar
显示java script
。有什么办法可以让进度条与服务器端代码同步工作吗?我可以知道服务器端代码何时完成执行或即将完成执行?
答案 0 :(得分:2)
如果没有您构建实现此特定应用程序的功能,则无法执行此操作。
我假设客户点击某个链接会启动繁重处理?
如果是,那么您可以尝试以下方法。
这种方法要求你拥有某种重型流程管理器,它掌握所有正在运行的流程,并可以从中提取流程。
这可以通过在数据库中创建一个新表来完成,在该表中存储流程唯一ID和每个流程的%进度。然后,每个进程在进行中时更新表中的行,只需在其ID请求时从表中返回进度值。
如果你正在寻找一个好的进度条插件Jquery有它:http://jqueryui.com/progressbar/:)
答案 1 :(得分:1)
我是通过使用
完成的function pollProgress() {
setTimeout(function() {
int progress = queryServerProgress();
if(progress < 100) {
pollProgress();
}
}, 1000)
}
并查询服务器当前进度。只要进度是&lt;触发相同的查询/更新功能。 100%。
您需要在服务器端跟踪进度。
答案 2 :(得分:1)
我们有类似的用例,我们通过使用REST API定期检查状态来实现。当服务器端正在执行任务时,服务器会更新内存中的状态以及客户端对API进度的请求。