有没有人知道如何使用Wicket来实现这一目标?
我希望在一段时间内未检测到任何用户活动时自动显示Wicket odal窗口。我想以某种方式使用AjaxSelfUpdatingBehavior,但实际上我没有明确的想法。
Wicket可以吗?
答案 0 :(得分:1)
是的,你可以,我用它作为autologout功能
public class MyTimer extends AbstractAjaxTimerBehavior {
public MyTimer(int seconds) {
this(Duration.seconds(seconds));
}
@Override
protected void onTimer(AjaxRequestTarget target) {
// show your window magic
}
}
将此添加到您的页面(add(new MyTimer(300));
),这将在您指定的秒数后调用。执行ajax调用时,请务必使用新计时器替换计时器,或重置计时器。
答案 1 :(得分:1)
另外,你可以使用一些js库来捕获所有ajax调用,并确保你的用户确实是afk(即使没有碰到他的鼠标)。
并且(如果你使用这个js框架)在wicket中你必须处理
ifvisible.idle(function(){
Wicket.Ajax.get({u: '${callbackUrl}'})// This code will work when page goes into idle status
});
您必须从wicket代码设置$ {callbackUrl},让js知道在java代码中要执行的操作。这样做并不难。看here。
这种方法比较棘手,但是如果你实现这一点,你就不必担心用户的行为(他可以阅读网站的信息,不要点击任何ajax链接,但突然间他会看到模态窗口。)