PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > execution apres une boucle for
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
execution apres une boucle for

Réponse
 
LinkBack Outils de la discussion
Vieux 29/04/2007, 22h47   #1
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut execution apres une boucle for

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.
  Réponse avec citation
Vieux 29/04/2007, 23h09   #2
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: execution apres une boucle for

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.
  Réponse avec citation
Vieux 30/04/2007, 00h06   #3
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Solution + Questions] Re: execution apres une boucle for

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>
  Réponse avec citation
Vieux 30/04/2007, 01h16   #4
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Solution + Questions] Re: execution apres une boucle for

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.
  Réponse avec citation
Vieux 30/04/2007, 02h15   #5
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Solution + Questions] execution apres une boucle for

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.
  Réponse avec citation
Vieux 30/04/2007, 07h43   #6
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Solution + Questions] execution apres une boucle for

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.
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 19h59.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,10685 seconds with 14 queries