有人知道我如何使用 Wicket 完成此任务吗?
我想在一段时间内未检测到用户活动时自动显示 Wicket odal 窗口。我正在考虑以某种方式使用 AjaxSelfUpdatingBehavior,但实际上我并没有明确的想法。
Wicket可以做到这一点吗?
有人知道我如何使用 Wicket 完成此任务吗?
我想在一段时间内未检测到用户活动时自动显示 Wicket odal 窗口。我正在考虑以某种方式使用 AjaxSelfUpdatingBehavior,但实际上我并没有明确的想法。
Wicket可以做到这一点吗?
是的,您可以,我将其用作自动注销功能
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 调用时将计时器替换为新计时器,或将其重置。
此外,您可以使用一些 js 库来不捕获所有 ajax 调用,并确保您的用户真的是 afk(甚至不触摸他的鼠标)。
并且(如果你使用这个 js 框架)在检票口你必须处理
ifvisible.idle(function(){
Wicket.Ajax.get({u: '${callbackUrl}'})// This code will work when page goes into idle status
});
您必须从检票口代码中设置 ${callbackUrl} 以让 js 知道在 java 代码中要执行什么操作。做到这一点并不难。看这里。
这种方法比较棘手,但是如果你实现它,你根本不必担心用户的操作(他可以阅读网站的信息并且不点击任何 ajax 链接,但他会突然看到模态窗口)。