[JavaScript]besoin d'aide, rien ne fonctionne...

besoin d'aide, rien ne fonctionne... [JavaScript] - Programmation

Marsh Posté le 14-05-2002 à 15:02:25    

Voilà un bou de code. C'est sensé faire clignoter du texte dans une textbox:
function affiche()
{
  var i2,i, v_rl=100000;
  for (i2=0;i2<5;i2++)
  {      
    document.form_1.affiche.value="";    
    cadence(100000);
    document.form_1.affiche.value="hello";    
    cadence(100000);    
  }
}    
function cadence(v_rl)
{
  var i;
  for (i=0;i<v_rl;i++);
}
function ajoute_delai()
{
  affiche();
  //...
}
<form name=form_1>
<INPUT TYPE="button" NAME="envoi_delai" VALUE="Delai" ONCLICK="ajoute_delai();">  
<INPUT TYPE="text" NAME="affiche" VALUE="" >
</form>

 
C'est vraiment une fonction tout con, mais apparement ca ne fonctionne po, ca attend, mais ca n'affiche rien dans la textbox. Bref, si vous pouvez jeter un oeil pour m'aider un peut, ce serais cool.
A+


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 15:02:25   

Reply

Marsh Posté le 14-05-2002 à 15:07:36    

ta fonction cadence ne fait rien !
regarde ta boucle FOR car ya pas d'instruction dedans.............lol

Reply

Marsh Posté le 14-05-2002 à 15:08:40    

gwen2709 a écrit a écrit :

ta fonction cadence ne fait rien !
regarde ta boucle FOR car ya pas d'instruction dedans.............lol  




 
c le but de cadence....faire une simple pose...
je sais ki y'a rien dedant...  :pt1cable:


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 15:15:19    

helvetik a écrit a écrit :

 
 
c le but de cadence....faire une simple pose...
je sais ki y'a rien dedant...  :pt1cable:  




 
excuse moi mais regarde un peu ta fonction, elle fait juste q de compter de 0 à 100000,on est d'accord!
mais avec un 486dx tu va voir clignoter ton texte mais sur un PII(et sup) tu verras quedal car il calcul trop vite!
la solution à ton problème est d'utiliser la fonction setTimeout()....
 
@ toi de voir

Reply

Marsh Posté le 14-05-2002 à 15:24:44    

gwen2709 a écrit a écrit :

 
 
excuse moi mais regarde un peu ta fonction, elle fait juste q de compter de 0 à 100000,on est d'accord!
mais avec un 486dx tu va voir clignoter ton texte mais sur un PII(et sup) tu verras quedal car il calcul trop vite!
la solution à ton problème est d'utiliser la fonction setTimeout()....
 
@ toi de voir  




voui, je suis au courant de ce problème. Mais si je le fait c parceke je sais ke je vais utiliser ce programme ke sur des k62-400MHz !
je connais aussi setTimeout et setinterval (ki serais encore plus pratique dans ce ka la..), mais dans mon cas, je voulais utiliser cette foutu boucle for, car ca me simplifierrait la vie...
Bref, est-ce ke tu sais pourkoi ca ne fonctionne pas?


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 15:32:34    

ton script fonctionne tres bien mais on ne voit rien à l'affichage et quand j'augmente le compteur, ça ralentit dur dur...
 
je viens de le tester en debug  :hello:

 

[jfdsdjhfuetppo]--Message édité par gwen2709 le 14-05-2002 à 15:34:11--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-05-2002 à 15:48:17    

gwen2709 a écrit a écrit :

ton script fonctionne tres bien mais on ne voit rien à l'affichage et quand j'augmente le compteur, ça ralentit dur dur...
 
je viens de le tester en debug  :hello:  
 
 




vi, j'arrive au meme résultat.
c bizard.
si tu mets des message box après chaque affichage, on voit ke ca affiche bien, mais sans elle, on voit ke dalle.
c bien ca ki m'enerve.


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 15:53:19    

bah pour moi il fo utiliser le setTimeout() qui sera vraiment identik sur chq bécane !

Reply

Marsh Posté le 14-05-2002 à 16:09:31    

gwen2709 a écrit a écrit :

bah pour moi il fo utiliser le setTimeout() qui sera vraiment identik sur chq bécane !  




oui, mais setTimeout(); appel une autre fonction:
syntax: setTimeout(fonction,temps,argument);
je ne sais pas comment je pourrais l'utiliser dans le cas présent, car, le problem de setTimeout(); c ke kan j'appel une autre fonction, il continue aussi celle depuis ou on l'a appelé... attend, je te donne un exemple:
function start1()
{
  alert("1" );
  setTimeout(pause,2000); //j'appel pause dans 2 secondes, je  
                          //met pas d'arguement
  alert("3" );
}
function pause()
{
  alert("2" );
}
 
<form name=form_1>  
<INPUT TYPE="button" NAME="start" VALUE="Delai" ONCLICK="start1();">  
</form>

 
 
En théorie, avec une fonction "normale", on aurait à l'écran 1, après 2secondes 2 et 3 dans des msgbox, mais en fait, si tu teste le code, tu auras 1, 3 et après 2seconde, 2
 
Tu vois un peux le problème?

 

[jfdsdjhfuetppo]--Message édité par helvetik le 14-05-2002 à 16:23:55--[/jfdsdjhfuetppo]


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 16:16:27    

De plus, j'aimerais pouvoir arréter kan je veux le clignotement de mon texte, et j'arrive po faire fonctionner cette foutu fonction clearTimeout() et clearInterval()
 :cry:


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 16:16:27   

Reply

Marsh Posté le 14-05-2002 à 16:35:18    

ça c'est branleur com prog mais ça fonctionne tres bien!
 
tu détermines le nombre de fois ou tu veux afficher HELLO dans la fonction STOP : ici, on affiche deux fois HELLO OK?

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
 
<script language="javascript">
var cpt=0;  
function affiche()
{
 document.form_1.affiche.value="";
  cpt++;
  if (stop(cpt)) return;
  else setTimeout(pause,500);
}
     
function pause()
{
 document.form_1.affiche.value="HELLO";    
 setTimeout(affiche,500);
}
function stop(cpt)
{
 if (cpt==3) return true;
}
function ajoute_delai()
{
 affiche();
}
</script>
 
</HEAD>
<BODY>
<form name=form_1>
<BR><INPUT TYPE="button" NAME="envoi_delai" VALUE="Delai" ONCLICK="ajoute_delai();">
<BR><INPUT TYPE="text" NAME="affiche" VALUE="">
<BR>
</form>
 
</BODY>
</HTML>

 

[jfdsdjhfuetppo]--Message édité par gwen2709 le 14-05-2002 à 17:01:18--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-05-2002 à 19:43:57    

c bizard, avec ce code, la premier fois ke tu clique sur le bouton delai, ça clignote 2x, et la deuxieme fois ke tu clik, ben ca s'arrete plus...
t'as du oublier de remettre a 0 une variable, je vais étudier ca, merci.
 
edit: voui, c dans ta fonction affiche(), fo remettre cpt à 0

 

[jfdsdjhfuetppo]--Message édité par helvetik le 14-05-2002 à 20:09:53--[/jfdsdjhfuetppo]


---------------
---helvetik---
Reply

Marsh Posté le 14-05-2002 à 20:07:01    

je pige pas pourkoi tu utilise ce return:
 
if (stop(cpt))  
return;
 
si tu met cpt=0; à la place, ca fonctionne mieux

 

[jfdsdjhfuetppo]--Message édité par helvetik le 14-05-2002 à 20:09:18--[/jfdsdjhfuetppo]


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 08:02:19    

Bon, maintenant, je hausse un peu le nivo de l'exercice. Fo ke ca arrête de clignoter dans un temps voulu en seconde. Avec le code ke tu m'as pondu hier, ca risk de pas être évident...  :sweat:


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 08:57:49    

helvetik a écrit a écrit :

Bon, maintenant, je hausse un peu le nivo de l'exercice. Fo ke ca arrête de clignoter dans un temps voulu en seconde. Avec le code ke tu m'as pondu hier, ca risk de pas être évident...  :sweat:  




 
attends, je débarque!

Reply

Marsh Posté le 15-05-2002 à 08:59:14    

avec ce que je t'ai mis hier, le temps de clignotement est de 2x (500ms+500ms) ki donne 2 sec Nan?

 

[jfdsdjhfuetppo]--Message édité par gwen2709 le 15-05-2002 à 08:59:50--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 15-05-2002 à 09:00:11    

gwen2709 a écrit a écrit :

 
 
attends, je débarque!  




 
y'a plusieurs solution, on peut utiliser l'horloge system, mais je vois pas comment faire.
Ou alors si je cligote  à une fréquence de 500 ms, fo clignoter 20 fois pour 10 secondes...


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:01:29    

gwen2709 a écrit a écrit :

avec ce que je t'ai mis hier, le temps de clignotement est de 2x (500ms+500ms) ki donne 2 sec Nan?  
 
 




merde, grilled pour 20seconde
Oui, c ce ke je pensais aussi mais bon..


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:04:30    

helvetik a écrit a écrit :

 
merde, grilled pour 20seconde
Oui, c ce ke je pensais aussi mais bon..  




 
avec la boucle que l'on a fait, on sait qu'il faut mettre (n+1) dans cette boucle pour avoir n tour,on est OK là dessus.
Donc après il faut jouer sur ce nombre pour avoir un clignotement de x secondes.
En conclusion, il faut mettre 21 dans la boucle pour qu'il clignote 20sec OK????

 

[jfdsdjhfuetppo]--Message édité par gwen2709 le 15-05-2002 à 09:33:07--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 15-05-2002 à 09:10:51    

ouais vouais, jusque là, j'avais capté.


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:11:19    

J'ai rectifié mon truc pour q ça marche à chq fois :
<script language="javascript">
var cpt=0;  
function affiche()
{
 document.form_1.affiche.value="";
  cpt++;
  if (stop(cpt)) {cpt=0;return;}
  else setTimeout(pause,500);
}
     
function pause()
{
 document.form_1.affiche.value="HELLO";    
 setTimeout(affiche,500);
}
function stop(cpt)
{
 if (cpt==3) return true;
}
function ajoute_delai()
{
 affiche();
}

 
le return sert à sortir de la fonction lorsque on atteint le nombre de fois q l'on a défini dans notre cpt!

Reply

Marsh Posté le 15-05-2002 à 09:20:35    

gwen2709 a écrit a écrit :

le return sert à sortir de la fonction lorsque on atteint le nombre de fois q l'on a défini dans notre cpt!  




 
ben la il sert a rien ton return puis ke si on est passé dans le if, on passera pas dans le else, et ce dernier est la dernière instruction de la fonction.
 
Mais bon...
 
Pour l'instant g un problem pour faire passer des paramètres avec la fonction settimeout...


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:28:37    

je te parlais de l'autre return dans la fonction STOP mais c vrai q l'autre ne sert à rien....
 
c koi le PB avec setTimeout()???

Reply

Marsh Posté le 15-05-2002 à 09:34:16    

gwen2709 a écrit a écrit :

je te parlais de l'autre return dans la fonction STOP mais c vrai q l'autre ne sert à rien....
 
c koi le PB avec setTimeout()???  




bof, tant pis, j'utilise plus les paramètre, mais une variable global... attend 5min ke je finisse et je te passe le code.
 :hello:


---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:46:06    

helvetik a écrit a écrit :

Citation :

<HTML>
<HEAD>
<TITLE></TITLE>
<script language="javascript">
  var cpt=0, speed=500,v_delai;
  function affiche()
  {
    document.form_1.affiche.value="";
    cpt++;
    if (stop(cpt))  //permet de s'arreter  
   cpt=0;
    else  
   setTimeout(pause,speed);
  }    
  function pause()
  {
    document.form_1.affiche.value="HELLO";    
    setTimeout(affiche,speed);
  }  
  function stop(cpt)
  {
    if (cpt==v_delai)  
   return true;
  }  
  function ajoute_delai(form_1)
  {
    v_delai=(document.form_1.delai.value*2)+1;
    affiche();
  }
</script>
 
 
</HEAD>
<BODY>
<form name=form_1>
<BR><INPUT TYPE="text" NAME="affiche" VALUE="">
<BR>
<BR>Entrez delai<INPUT TYPE="text" NAME="delai" VALUE="" ONCHANGE="ajoute_delai(this);">
 
</form>
 
</BODY>
</HTML>


 
Voila  
 
Le *2 que g mis en gras dans le code n'est meme pas nécesaire car on incrémente cpt que quand le text est afficher et pas quand il est effacé.....
bon, ben merci
 




---------------
---helvetik---
Reply

Marsh Posté le 15-05-2002 à 09:47:29    

ok ça roule

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed