jQuery: 3 minutos en segundos
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);
}
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