Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Resolu][JS] Quelle différence entre mes deux codes ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Resolu][JS] Quelle différence entre mes deux codes ?

n°2057198
Toscanno
Posté le 16-02-2011 à 08:45:55  profilanswer
 

Bonjour à tous,
 
Je souhaiterais avoir vos avis sur deux petits bouts de code que j'ai réalisé :

Code :
  1. function decompte(temps,div_affichage)
  2.             {
  3.                 document.getElementById(div_affichage).innerHTML=temps;
  4.                 temps = temps-1;
  5.                 setTimeout(function(){decompte(temps,div_affichage)}, 1000);
  6.             }


Code :
  1. function decompte_2(temps,div_affichage)
  2.             {
  3.                 temps_affiche = temps;
  4.                
  5.                 taille = temps_affiche.length;
  6.                
  7.                 temps_affiche = ( (temps_affiche.substring(taille-12,taille-9)) + "." + (temps_affiche.substring(taille-9,taille-6)) + "." + (temps_affiche.substring(taille-6,taille-3)) + "." + (temps_affiche.substring(taille-3,taille-0)) );
  8.                
  9.                 document.getElementById(div_affichage).innerHTML = temps_affiche;
  10.                
  11.                 temps = temps-1;
  12.                 setTimeout(function(){decompte_2(temps,div_affichage)}, 1000);
  13.             }


 
Il s'agit d'un décompteur de secondes, relativement simple.
La première fonction marche impec, pas de soucis, si on lui mets 1 000 000 de secondes, tout décompte bien, la fonction se rappelle en enlevant une seconde à chaque... seconde.
 
Pour la seconde fonction, j'ai juste repris ce que j'avais fait pour la première, en voulant mettre un peu en forme l'affichage du décompteur en introduisant des points pour séparer les milliers des millions etc... sauf que dans cette seconde fonction, l'affichage est correct, mais il n'y a pas de rappel de la fonction et le compteur reste statique
 
J'ai essayé de ne modifier qu'une variable destinée à l'affichage (temps_affiche), donc je ne vois pas quelle peut être la différence qui fait qu'une fonction marche et non l'autre, qu'une se rappelle et non l'autre, d'autant plus que le premiers affichage est correct pour la seconde
 
Merci pour votre aide et vos commentaires


Message édité par Toscanno le 16-02-2011 à 10:43:39
mood
Publicité
Posté le 16-02-2011 à 08:45:55  profilanswer
 

n°2057214
rufo
Pas me confondre avec Lycos!
Posté le 16-02-2011 à 09:49:35  profilanswer
 

Déjà, tu pars du principe que taille >= 12. Si tu mets un temps de 1000 ça va pas le faire :/
 
ps : j'aime bien le coup du taille-0 :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2057237
gatsu35
Blablaté par Harko
Posté le 16-02-2011 à 10:24:27  profilanswer
 

si tu avais une console JS ou tu testais ton code, tu verrais que temps_affiche.substring is not a function
ca signifie que temps_affiche est un nombre.
La technique c'est de transformer en string cette variable au moment ou tu la set avec temps
 

Code :
  1. temps_affiche = temps+"";


---------------
Blablaté par Harko
n°2057245
Toscanno
Posté le 16-02-2011 à 10:43:21  profilanswer
 

rufo a écrit :

Déjà, tu pars du principe que taille >= 12. Si tu mets un temps de 1000 ça va pas le faire :/
 
ps : j'aime bien le coup du taille-0 :D


 
Oui je vais améliorer la gestion de la taille, c'est sur que c'est pas très générique là...
Pour le '-0' c'est que j'ai testé au début avec du -1 puis modifié ^^
 

gatsu35 a écrit :

si tu avais une console JS ou tu testais ton code, tu verrais que temps_affiche.substring is not a function
ca signifie que temps_affiche est un nombre.
La technique c'est de transformer en string cette variable au moment ou tu la set avec temps
 

Code :
  1. temps_affiche = temps+"";



 
Ok merci, je comprends mieux ça, et je vais me toruver de quoi debuguer correctement.
 
Merci pour les infos.
 

n°2057246
gatsu35
Blablaté par Harko
Posté le 16-02-2011 à 10:50:10  profilanswer
 

firebug


---------------
Blablaté par Harko
n°2057473
rufo
Pas me confondre avec Lycos!
Posté le 17-02-2011 à 11:01:29  profilanswer
 

+1 pour firebug, pour rappel, le javascript est assez tatillon dans son exécution quand il rencontre une erreur et n'est généralement pas très loquasse :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Resolu][JS] Quelle différence entre mes deux codes ?

 

Sujets relatifs
formulaire html et JSdifference entre debug et release
une liste d'élements à manipuler en JS[resolu] JS affichage d'image cassé :-(
Js : remplacer du texte au sein de la pageDifférence de fonctionnement dans l'IDE / à partir du .jar compilé
Age - Code calculant la différence entre deux date en lettreHelp JS je deviens fou ! Compter div ayant une classe spécifique
[JS] Problèmes avec listes déroulantesProblème lecture codes barre 2/5 entrelacés
Plus de sujets relatifs à : [Resolu][JS] Quelle différence entre mes deux codes ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR