Frage

Ich dachte, das wäre einfach, aber ich bin entweder viel zu kurz oder viel zu lang.

Ich versuche, den Benutzer nach 3 Minuten abzumelden Dies ist der Countdown, von dem ich dachte, er würde funktionieren. Ich habe 3000, 300, 3 * 60, 3 * 1000 usw. ausprobiert.

var timeout = 30*1800;

Dies ist die Funktion, die ich ausführen möchte,

    function loadidle(){

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

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

              logout();

          });


          $.idleTimer(timeout);
}

War es hilfreich?

Lösung

Sie benötigen nur einen einfachen Timer.Es gibt viele Sorten.Hier ist ein spottbilliges Beispiel, das es als Klasse gut abstrahiert.Sie können den Timer "fortsetzen", indem Sie .reset () aufrufen.

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();
    }
}

Starten Sie einen neuen Timer:

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

Andere Tipps

Ziemlich sicher, dass JS (und damit jQuery) Millisekunden verwendet, sodass Sie 3 * 60 * 1000 benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top