|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
J'ai une boucle for, et juste apres la boucle, une alert() pour debugger. Donc ceci (je simplifie, hein...): var une_variable = <php? print mysql_num_rows($blabla); ?>; for (i=0; i < une_variable; i ++) { [fais ceci et cela] } alert("c est fait "); Dans mon code (tres compliqué), alert n'est pas appelée. Par contre, si je place alert() dans la boucle, alors j'ai le bon nombre de pop-up avec le bon affichage, car je demande a alert d'afficher l'indice de la boucle (ce qui me fait dire qu'on n'a pas de problèmes d'indexes). Quel cas de figure une boucle for empeche l'execution de l'instruction juste aores la boucle? J'essaie avec Konqueror et IE6 avec les memes constatations. Ca peut aussi etre un problème de parsing de la page en question, car c'est du code récupéré/hérité (un fichier de 2500 lignes).... Mais peut-etre que non. Dans du code simple, comme celui de l'exemple, "ça marche bien", mais une fois dans ma page, ça marche moins bien. Merci d'avance. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Le 29/04/2007 23:47, Mihamina (R12y) Rakotomandimby a écrit :
> Bonjour, > J'ai une boucle for, et juste apres la boucle, une alert() pour debugger. > Donc ceci (je simplifie, hein...): > > var une_variable = <php? print mysql_num_rows($blabla); ?>; > for (i=0; i < une_variable; i ++) > { > [fais ceci et cela] > } > alert("c est fait "); > > Dans mon code (tres compliqué), alert n'est pas appelée. > > Par contre, si je place alert() dans la boucle, alors j'ai le bon nombre de > pop-up avec le bon affichage, car je demande a alert d'afficher l'indice de > la boucle (ce qui me fait dire qu'on n'a pas de problèmes d'indexes). > Quel cas de figure une boucle for empeche l'execution de l'instruction juste > aores la boucle? Le code ne planterait pas par hasard vers la fin du code de l'itération « une_variable - 1 » ? Est-ce que cela marche toujours quand tu places alert() juste avant l'accolade fermante ? Tu peux même essayer ceci : var une_variable = <php? print mysql_num_rows($blabla); ?>; for (i=0; i < une_variable; i ++) { [fais ceci et cela] if (i >= une_variable - 2) { alert("dans la boucle"); } } alert("c est fait "); Si tu as deux alertes "dans la boucle" et aucune "c est fait " alors je sèche. En revanche, si tu as une seule alerte "dans la boucle" et rien d'autre, c'est bien que le code plante à la dernière itération. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Le 30/04/2007 00:58, Mihamina (R12y) Rakotomandimby a écrit :
> > J'ai l'explication, c'est à cause de l'imbrication de mes boucles et du fait > que j'utilise le meme nom pour mes indices de boucles. > Un cas concret: http://www.daj.at/boucle.html > > [...] > > Quelle est l'explication technique? (Quels mot-clé SVP) Portée des variables ? Remplacer « for (i=...) » par « for (var i = ...) » et « for (j=...) » par « for (var j = ...) » serait beaucoup plus propre et plus sûr. > Connaitriez-vous d'autres subtilités du langage de ce type qui sont > sceptibles de me faire perdre 100gr de cheveux et que je pourrais > anticiper? En voici une : <http://www.google.fr/search?q=javascript+closures> |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen - <4635250f$1@neottia.net> :
>> Un cas concret: http://www.daj.at/boucle.html >> Quelle est l'explication technique? (Quels mot-clé SVP) > Portée des variables ? Quand j'ajoute un alert("toto") juste apres l'accolade de la boucle for de boucle_deux(), pas de pop-up. Malgré les "var" (qui ont permi au moins le parcours de la boucle). Aussi un probleme de portée? MErci encore. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Mihamina (R12y) Rakotomandimby - <3984200.r3ARoyN55A@asso-polyvalente.fr> :
>>> Un cas concret: http://www.daj.at/boucle.html >>> Quelle est l'explication technique? (Quels mot-clé SVP) >> Portée des variables ? > Quand j'ajoute un alert("toto") juste apres l'accolade de la boucle for de > boucle_deux(), pas de pop-up. Malgré les "var" (qui ont permi au moins le > parcours de la boucle). Exemple de code ou je n'ai pas de pop-up: http://www.daj.at/boucle-var.html Pourtant, d'apres l'output on a bien un parcours complet des indices. Je ne comprends pas. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Mihamina (R12y) Rakotomandimby - <1742146.3DIYEgXmZX@asso-polyvalente.fr> :
>>>> Un cas concret: http://www.daj.at/boucle.html >>>> Quelle est l'explication technique? (Quels mot-clé SVP) >>> Portée des variables ? >> Quand j'ajoute un alert("toto") juste apres l'accolade de la boucle for >> de boucle_deux(), pas de pop-up. Malgré les "var" (qui ont permi au moins >> le parcours de la boucle). > Exemple de code ou je n'ai pas de pop-up: Apres une nuit de sommeil: sous IE6, y a pop-up. Sous Konqueror, non. Pour avoir la pop-up, je dois plutot mettre l'alert() _dans_ la boucle... Ce qui, dans mon contexte final n'est pas génant, mais c'est quand meme curieux. |
|
![]() |
| Outils de la discussion | |
|
|