2009-04-04 6 views
3

J'ai une application ASP classique qui repose sur la session; Si l'utilisateur laisse un écran inactif puis exécute un message de formulaire ou une autre opération, j'aimerais savoir si la session a expiré. Actuellement, je vérifie la session dans chaque page pour voir si elle est expirée, mais y a-t-il une meilleure approche dynamique, JavaScripty qui fera ce que les banques font et expirent des sessions avec une notification et une redirection pour se connecter?Création d'applications ASP classiques pour détecter dynamiquement l'expiration d'une session

Répondre

2

Au cours de l'événement onload de votre page, démarrez une minuterie, puis redirigez la page après N secondes.

  • Pour la minuterie, utilisez la fonction window.setTimeout. Pour la redirection, définissez window.location.

réutilisable Exemple:

<head> 
<script type="text/javascript"> 
<!-- 
function redirect(url) { 
    window.location = url; 
} 
function beginSessionTimer() { 
    // 30000ms = 30s 
    window.setTimeout(redirect, 30000, 
        "http://www.yoursite.com/login.asp?session=clear"); 
} 
//--> 
</script> 
</head> 
<body onload='beginSessionTimer();'> 
</body> 

Quick-n-sale Exemple w/une fonction en ligne:

<body onload='window.setTimeout(function(){ 
window.location="http://www.yoursite.com/login.asp?session=clear";}, 
30000);'> 

Notez que si votre page effectue une appels AJAX, qui maintient la session en vie , donc vous voudrez réinitialiser la minuterie en utilisant la méthode clearTimeout (combinée avec un nouvel appel à setTimeout). Pour plus de détails sur clearTimeout, click here pour une excellente documentation de Mozilla.)

+0

c'est génial! Merci David! J'ai remplacé la redirection par un message pop-up et ça marche super! –

Questions connexes