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

回到顶部