Обнаружить бездействие пользователя 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 или сбросьте его.

Другие вопросы по тегам