Обнаружить бездействие пользователя Wicket
У кого-нибудь есть идеи о том, как я могу сделать это с помощью Wicket?
Я хочу, чтобы окно Wicket odal отображалось автоматически, если в течение определенного времени не было обнаружено никаких действий пользователя. Я думаю об использовании AjaxSelfUpdatingBehavior, но на самом деле у меня нет четких идей.
Это возможно с Wicket?
2 ответа
Кроме того, вы можете использовать некоторую библиотеку js, чтобы не перехватывать все вызовы ajax и быть уверенным, что ваш пользователь действительно афк (даже не касается его мыши).
Например, посмотрите этот бесплатный фреймворк и это демо.
И (если вы используете этот JS Framework) в калитке вы должны обрабатывать
ifvisible.idle(function(){
Wicket.Ajax.get({u: '${callbackUrl}'})// This code will work when page goes into idle status
});
Вы должны установить ${callbackUrl} из кода калитки, чтобы js знал, какое действие необходимо выполнить в коде Java. Это не сложно сделать это. Посмотри здесь
Этот подход более сложный, но если вы реализуете его, вам не нужно беспокоиться о действиях пользователей вообще (он может читать информацию сайта и не нажимать никакие ajax-ссылки, но внезапно он увидит модальное окно).
Да, я могу использовать это как функцию автолога
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 или сбросьте его.