2009-09-24 9 views
0

J'essaie d'implémenter un délai d'attente automatique à l'intérieur d'une application PHP existante.Délai d'attente de déconnexion avec la boucle de réinitialisation

Mon objectif est que le système avertisse l'utilisateur 15 secondes avant que le délai d'attente automatique ne se produise et leur donne la possibilité de «réinitialiser» le temporisateur. J'utilise des bits jQueryUI dans le cadre de tout cela.

This chart may help describe what I'm trying to do.

J'ai une minuterie de travail et de notification en place. Ce que je cherche, c'est la boucle de Vous êtes invité à vous déconnecter automatiquement -> annuler la déconnexion automatique -> redémarrer la minuterie -> Vous êtes invité à vous déconnecter automatiquement. (C'est ce qui est en rouge sur ma carte.)

Existe-t-il de bonnes options pour cela?

Voici ce que j'ai jusqu'à présent, mais je pense que je suis coincé ...

window.setTimeout(function() { 
    $('#timeOutNoticeMsg').css('color', '#000000'); 
    $("#timeOutDialog").dialog({ 
     bgiframe: true, 
     modal: true, 
     resizable: false, 
     draggable: false, 
     buttons: { 
      "Cancel Logout": function() { 
       $(this).dialog("close"); 
       window.clearTimeout(timeoutHandle); 
      } 
     }, 
    }); 
}, 103000); 

var timeoutHandle = window.setTimeout(function() { 
    window.location.href = 'logout.php?w=1'; 
}, 115000); 
+0

Est-ce que cela ne déconnecte pas l'utilisateur même s'il est actif sur la page? –

+0

Oui, à moins qu'ils ne cliquent sur le bouton «Annuler la déconnexion» dans le diaplg qui apparaît ... ce qui efface le bit location.href ... Je ne suis pas aussi intéressé par activité sur une seule page que autant que je suis intéressé à aller de page en page. – Jason

Répondre

0

J'incluraient une variable booléenne dans la fonction « Annuler Déconnexion »:

 "Cancel Logout": function() { 
      $(this).dialog("close"); 
      window.clearTimeout(timeoutHandle); 
      logMeOut = false; 
     } 

et puis rendre la fonction de sortie dépendant de cette variable:

var timeoutHandle = window.setTimeout(function(logMeOut) { 
if(logMeOut == true) 
{  
    window.location.href = 'logout.php?w=1'; 
}, 115000); 

S'il vous plaît noter que je ne suis pas un expert jQuery, et je NE PAS se porter garant du pseudocode ci-dessus. Découvrez la syntaxe vous-même.

+0

Avec un peu de peaufinage ça marche ... Merci pour l'aide – Jason

Questions connexes