2010-11-02 6 views
0

Je souhaite que mes utilisateurs voient une case de confirmation après 15 min, en les alertant du délai d'expiration de la session. Je souhaite que ce processus se poursuive à plusieurs reprises. C'est même si l'utilisateur sélectionne Annuler dans la case de confirmation, il recevra la même alerte après 15 min.Javascript settimeout

+1

Yep, cliquez sur la petite coche à côté la meilleure réponse. Cela fait que les gens veulent vous répondre plus. – rwilliams

Répondre

6

Vous pouvez utiliser la fonction setInterval si vous souhaitez l'exécuter à plusieurs reprises:

setInterval(function() { 
    alert('hello world'); 
}, 15 * 60 * 1000); 

Aussi, vous pouvez jeter un oeil sur le plug-in jquery idleTimer qui vous permet de détecter les périodes d'inactivité de l'utilisateur et de prendre certaines mesures.

3
setInterval(alert(Session Timeout),90000); 

pour confirmer boîte

setInterval(alert(confirm('Session Timeout')),90000); 
2

Utilisez setInterval pour cette

var t = setInterval("alert('Your sesssion will be expired after 15 min')",900000); 
2

il suffit d'utiliser setTimeout():

function handleSessionTimeout() { 
    var isOk = confirm("Your session is going to time out"); 
    if(isOk) { 
     // let the session time out 
    } else { 
     // don't let it timeout. 
     // restart the timer 
     setTimeout(handleSessionTimeout, 900000); 
    } 
} 
setTimeout(handleSessionTimeout, 900000); 

les temps (900000) sont en millisecondes.

+1

BTW, je pense que vous devriez utiliser "15 * 60 * 1000" au lieu de 900000, pour des raisons de lisibilité – Radian

3

Vous avez deux options

  1. setInterval (f, ms)

    fonction f() {
    confirmer ('Session Timeout')
    }
    setInterval (f, 15 * 60 * 1000);

  2. setTimeout (f, ms) + fonction récursion

    f() {
    confirm ('Session Timeout')
    si setTimeout (f, 15 * 60 * 1000) (stopCondition!);
    }
    setTimeout (f, 15 * 60 * 1000);

Conclusion:
setInterval est mieux quand vous voulez que le comportement à répéter toujours
setTimeout est meilleur quand vous voulez arrêter le comportement plus tard