Ищете способ предложить пользователю оставаться в системе до автоматического тайм-аута и автоматически сохранять перед выходом из системы? - PullRequest
0 голосов
/ 19 мая 2011

Я использую проверку подлинности с помощью форм и время ожидания составляет 30 минут.

То, что я ищу, - это какой-то способ побудить пользователя за несколько минут до истечения времени ожидания,и если они хотят сохранить свою сессию.

У нас есть довольно большие формы, в которых пользователи заполняют много данных.Они будут проверять информацию на других системах, сверяться с коллегами по телефону и т. Д.

Я также хочу добавить автосохранение как раз перед тем, как истечет время ожидания.

Этих простых вещей достичь с помощью JQuery, например?

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Решение, которое мы нашли в нашем проекте, состояло в том, чтобы создать javascript (не обязательно jQuery), который запрашивает пользователя, прежде чем он выйдет из системы, и отправляет фиктивный httpRequest, чтобы сохранить сеанс.что-то вроде (не проверено):

var promptUserTimeoutId = 0;
promptUserTimeoutId = setTimeout(promptUser, 30 * 60 * 1000); //call just once, in 30 minutes

function promptUser() {
  if (alert('stay logged in?')) {
       sendHttpRequest(); //just signal a keep-alive to the server...
       //re-set the 30 minutes count
       clearTimeout(promptUserTimeoutId);
       promptUserTimeoutId = setTimeout(promptUser, 30 * 60 * 1000);
  }
}
1 голос
/ 19 мая 2011
    function keepSessionAlive(timeLeft)
    {
     var timer = setTimeout(function(){
     //Prompt the user to keep the session alive;
     //make a dummy request via ajax to refresh the session on the server.
     //reset the timeLeft to your timeout
     //call keepSessionAlive(timeLeft)
     },timeLeft);
    }

Затем при загрузке документа вы можете вызвать свой метод.

body.onload=keepSesionAlive(<yourTimeOut-3 to 4 minutes>);

Я не знаю, как это сделать в jquery.

...