Wicket - 进度/多标签更新
我不确定这是否可能。当你点击“提交”按钮时,似乎有一种方法可以做到这一点。Wicket - 进度/多标签更新
private Button getButton(String id) {
return new AjaxButton(id)
{
private static final long serialVersionUID = 1L;
{
setEnabled(true);
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
debug = "Beginning a process....";
target.addComponent(debugLabel);
//Perform the first process
debug = "Beginning second process....";
target.addComponent(debugLabel);
//Perform the second process
debug = "Finishing....";
target.addComponent(debugLabel);
//Perform the third process
debug = "Done.";
target.addComponent(debugLabel);
}
@Override
protected void onError(AjaxRequestTarget target, Form form)
{
//NO-OP
}
};
}
}
如果这是不可能的,是否有替代多个实时更新?我需要它,所以底部的更新中会有一个状态标签,告诉你在这一种方法中完成了多少进展。
回答:
只需使用AjaxTimerBehavior,以便更新您的标签每1-2秒。
代码:
add(new AbstractAjaxTimerBehavior(Duration.seconds(1)) {
@Override
protected void onTimer(AjaxRequestTarget target)
{
target.add(label);
}
});
显然,这种解决方案采用了哑AJAX投票,所以它只是建议使用它在Intranet或其他低流量的网站。
回答:
您将不得不启动您想在另一个线程中收到通知的进程。然后,您可以更新用户会话,并提供有关状态的信息,这些信息将由一些ajax行为绑定到标签来定期检查。
在检票口6,你也可以使用WebSocketBehavior
以上是 Wicket - 进度/多标签更新 的全部内容, 来源链接: utcz.com/qa/266667.html