Pregunta

Pensé que esto sería fácil, pero parece demasiado corto o demasiado largo.

Estoy intentando cerrar la sesión del usuario después de 3 minutos. esta es la cuenta regresiva que pensé que funcionaría. Probé 3000, 300, 3 * 60, 3 * 1000 y así sucesivamente

var timeout = 30*1800;

Esta es la función que intento ejecutar

    function loadidle(){

          var timeout = 180000;
          //alert(timeout);

          $(document).bind("idle.idleTimer", function(){

              logout();

          });


          $.idleTimer(timeout);
}
¿Fue útil?

Solución

Solo necesitas un temporizador simple.Hay muchas variedades.Aquí hay un ejemplo barato de suciedad que lo abstrae bien como una clase.Puede "continuar" el temporizador llamando a .reset ().

function Timeout(seconds, callback){
    this.length = seconds * 1000;
    this.callback = callback;
    this.start();
}
Timeout.prototype = {
    start: function(){
        var self = this;
        this.stop();
        this.timer = setTimeout(function(){
            self.complete();
        },this.length);
    },
    stop: function(){
        if (this.timer) clearTimeout(this.timer);
        this.timer = null;
    },
    complete: function(){
        if (this.callback) this.callback();
        this.stop();
    },
    reset: function() {
        this.stop();
        this.start();
    }
}

Iniciar un nuevo temporizador:

var timer = new Timeout(3 * 60, logout);
timer.reset(); // refresh the timer
timer.stop(); // cancel the timer

Otros consejos

Estoy bastante seguro de que JS (y por lo tanto jQuery) usa milisegundos, por lo que querrá 3 * 60 * 1000.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top