истечение сеанса в реальном времени, оставшееся время - PullRequest
0 голосов
/ 06 июня 2011

В контексте JSF 2.0, session.getMaxInactiveInterval() возвращает время остатка истечения сеанса статическим способом. Есть ли обходной путь, позволяющий отображать оставшееся время в реальном времени? Что-то вроде системного потока.

В моем веб-приложении я использую компонент primeFaces (модальное диалоговое окно), который показывает себя после определенного времени бездействия пользователя (tmeout), отображая сообщение «Вы здесь?». На самом деле, я хочу добавить что-то вроде этого к этому диалогу:

<h:outputText id="remainder" value="#{sessionEar.maxInactiveInterval}" >
<f:ajax execute="@form" render="remainder"  event="????"/>
</h:outputText>

Таким образом, идея состоит в том, чтобы повторно визуализировать <h:outputText /> каждые 5 секунд или каждые 60 секунд (1 минута: предположить, что показ секунд в реальном времени не так прост)! Чтобы он обновлял оставшееся время до истечения сеанса.

Как я могу это сделать? В противном случае, у вас есть лучшее решение?

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Я бы предложил использовать таймер на основе JavaScript, который начинается с чтения значения #remainder.Также, таким образом, вам не придется совершать какие-либо обходы для запроса нового времени.

var interval=setInterval('updateSessionTimer()',1000);  // every second
var remainder = document.getElemetById('remainder');
function updateSessionTimer()
{
    secondsLeft = parseInt( remainder.innerText );
    remainder.innerHTML = secondsLeft-1;
}
0 голосов
/ 13 июня 2011

Я закончил использовать компонент PrimeFaces Poll, который подходит прямо.

<p:poll interval="1"  update="remainder" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...