Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2011, 16h33   #1
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 149
Points : 57
Points : 57
Par défaut setTimeout ne se stoppe pas avec le clearTimeout

Bonjour à toutes et à tous,

J'ai une petite question concernant le clearTimeOut.

J'ai deux fonctions


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
var globale = '';
 
function Un(parametres){
      globale = setTimeout(function(){Un(parametres);},30000);
}
 
function Deux(){
      if(globale!=''){
	clearTimeout(globale);
	globale='';
      }
 
      Un();
}
Donc en gros, ma fonction Deux() est appelée au chargement de la page. Après, lorsque je fais un traitement différent, j'appelle la fonction Deux() de nouveau, et à ce moment, il faut que le premiet SettimeOut s'arrête. Mais cela ne fonctionne pas de cette manière, du moins je n'en ai pas l'impression... Es-ce normal ?

Merci d'avance
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 10h17   #2
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Ca marche très bien chez moi ^^
Quel est le souci observé ?
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 12h36   #3
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 149
Points : 57
Points : 57
Hello,

Merci pour ta réponse. J'ai trouvé le soucis, en faite ce qu'il faisait, c'est qu'imaginons que je lance le fonction Deux(), cette dernière me permettrait de changer de page.

Si je cliquais deux fois sur le bouton ou plusieurs fois par exemple pour atterir sur la page 5 (donc 5 clic rapides), au bout de 30 secondes la page 2 s'affichait (ou une autre page au hasard) car le setTimeout ne s'arrêtait pas.

J'ai pallié au problème en faisant comme suis :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
var globale = '';
 
function Un(parametres){
      clearTimeout(globale); //ce qu'il manquait pour être sûr qu'il s'arrête avant d'être relancé.
      globale = setTimeout(function(){Un(parametres);},30000);
}
 
function Deux(){
      if(globale!=''){
	clearTimeout(globale);
	globale='';
      }
 
      Un();
}
Pis, peut-être, j'ai aussi modifié une chose dans mon code. En faite j'utilise JQuery, je faisait une requête asynchrone et dans le success de la méthode je faisait justement le setTimeout. Ce que j'ai fait, j'ai mis la requête en synchrone et cela fonctionne correctement.

Désolé de ne pas avoir répondus plus tôt, charge de travail oblige :-)

Merci beaucoup en tout cas pour ta réponse et pour l'intérêt :-)

A +

Tidus
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h07.


 
 
 
 
Partenaires

Hébergement Web