Question

Je pensais que ce serait facile, mais je semble que je sois trop court, soit trop long.

J'essaye de le faire signer l'utilisateur après 3 minutes c'est le compte que je pensais que j'ai essayé 3000, 300, 3 * 60, 3 * 1000 et ainsi de suite

var timeout = 30*1800;

C'est la fonction que j'essaie d'exécuter,

    function loadidle(){

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

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

              logout();

          });


          $.idleTimer(timeout);
}
Était-ce utile?

La solution

Vous avez juste besoin d'une minuterie simple. Il existe de nombreuses variétés. Voici un exemple de saleté bon marché qui le résume bien en tant que classe. Vous pouvez "continuer" la minuterie en appelant .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();
    }
}

Démarrez une nouvelle minuterie:

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

Autres conseils

Je suis sûr que JS (et donc jQuery) utilise des millisecondes, vous aurez donc envie de 3 * 60 * 1000.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top