JavaScript : Complexité des fonctions
Résolu/Fermé
bossoax
Messages postés
44
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
13 novembre 2012
-
17 juil. 2009 à 15:22
bossoax Messages postés 44 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012 - 24 juil. 2009 à 14:17
bossoax Messages postés 44 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012 - 24 juil. 2009 à 14:17
A voir également:
- JavaScript : Complexité des fonctions
- Telecharger javascript - Télécharger - Langages
- Node.js javascript runtime virus ✓ - Forum Virus
- Javascript echo ✓ - Forum PHP
- Erreur #125 javascript - Forum Mozilla Firefox
- Table de multiplication javascript ✓ - Forum Javascript
8 réponses
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
17 juil. 2009 à 16:16
17 juil. 2009 à 16:16
Salut,
Je suis pas sur d'avoir tout bien compris ...
Pour ce qui est du temps d'exécution de la propriété length, je ne suis sur de rien ... (jamais vu une question la dessus)...
A priori, length est une propriété et non pas une fonction. Ce qui laisse à penser qu'il est précalculé (donc pas de perte de temps ...)
Pour l'accès aux éléments d'un form, il est bien sur plus rapide d'utiliser son numéro que son nom. Tout simplement par ce qu'ils sont stockés dans l'ordre et qu'il n'a pas la comparaison de texte à faire.
Pour le reste ce n'est pas très clair ... tes pb d'images et d'inputs.
Pour les inputs dans un form, ce n'est pas une question de clarté mais de code.
Pour les images, une balise IMG. Tu peux les mettre dans un div ... ou n'importe quoi d'autre.
Nico
Je suis pas sur d'avoir tout bien compris ...
Pour ce qui est du temps d'exécution de la propriété length, je ne suis sur de rien ... (jamais vu une question la dessus)...
A priori, length est une propriété et non pas une fonction. Ce qui laisse à penser qu'il est précalculé (donc pas de perte de temps ...)
Pour l'accès aux éléments d'un form, il est bien sur plus rapide d'utiliser son numéro que son nom. Tout simplement par ce qu'ils sont stockés dans l'ordre et qu'il n'a pas la comparaison de texte à faire.
Pour le reste ce n'est pas très clair ... tes pb d'images et d'inputs.
Pour les inputs dans un form, ce n'est pas une question de clarté mais de code.
Pour les images, une balise IMG. Tu peux les mettre dans un div ... ou n'importe quoi d'autre.
Nico
bossoax
Messages postés
44
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
13 novembre 2012
20 juil. 2009 à 14:58
20 juil. 2009 à 14:58
Merci, tu as répondu à 2/3 de mes questions, merci bien l'ami =D
La 3éme question (la derniére) est assez simple en fait.
Je me demandais si c'était possible de mettre les images (balise <img>) dans un formulaire ?
A priori non.
Je conçois trés bien que les boutons ou champs textes sont mis dans des formulaires pour la gestion des données.
De ce fait, on peut par exemple acceder à document.[mon_Form].elements[XX]
Juste en ayant encapsulé les objets dans des balises <form>
Cela, c'est hyper pratique !
Mon souci, c'est que cela n'existe pas du tout pour les images (à ma connaissance).
On est obligés de passer par documents.images[XX] et donc on perd toute notion de répartition dans des formulaires. Ca devient vite crade quand on a 500 images, je dois faire des calculs de ouf pour retrouver l'image que je veux modifier.
Peut-être qu'une balise spéciale existe pour groupper les images ?
La 3éme question (la derniére) est assez simple en fait.
Je me demandais si c'était possible de mettre les images (balise <img>) dans un formulaire ?
A priori non.
Je conçois trés bien que les boutons ou champs textes sont mis dans des formulaires pour la gestion des données.
De ce fait, on peut par exemple acceder à document.[mon_Form].elements[XX]
Juste en ayant encapsulé les objets dans des balises <form>
Cela, c'est hyper pratique !
Mon souci, c'est que cela n'existe pas du tout pour les images (à ma connaissance).
On est obligés de passer par documents.images[XX] et donc on perd toute notion de répartition dans des formulaires. Ca devient vite crade quand on a 500 images, je dois faire des calculs de ouf pour retrouver l'image que je veux modifier.
Peut-être qu'une balise spéciale existe pour groupper les images ?
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
20 juil. 2009 à 15:07
20 juil. 2009 à 15:07
En fait, il faut comprendre comment ça fonctionne ...
l'accès des éléments du formulaire par forms[nomform][element] ne fonctionne en effet QUE pour des éléments input, textarea ...)
Il existe la possibilité d'utiliser <input type='image' src='' /> mais par défaut, en cliquant sur l'image, on valide le formulaire. Il est facile quand même d'empécher l'envoi du form en rajoutant onclick='return false' dans l'input image.
Mais à mon avis, tu t'embête pour pas grand chose.
Pourquoi ne rajoutes-tu pas un ID sur tes images lors de la génération de la page ?
comme ça tu peux toujours les appeler directement en javascript sans te prendre la tête.
document.getElementById( 'image142' )
Mieux, tu te fait une fonction :
et pour l'appeler :
l'accès des éléments du formulaire par forms[nomform][element] ne fonctionne en effet QUE pour des éléments input, textarea ...)
Il existe la possibilité d'utiliser <input type='image' src='' /> mais par défaut, en cliquant sur l'image, on valide le formulaire. Il est facile quand même d'empécher l'envoi du form en rajoutant onclick='return false' dans l'input image.
Mais à mon avis, tu t'embête pour pas grand chose.
Pourquoi ne rajoutes-tu pas un ID sur tes images lors de la génération de la page ?
... <img id='image142' src=' ... ' /> <img id='image143' src=' ... ' /> ...
comme ça tu peux toujours les appeler directement en javascript sans te prendre la tête.
document.getElementById( 'image142' )
Mieux, tu te fait une fonction :
function Image( numero ) { return document.getElementById( 'image'+numero ); }
et pour l'appeler :
Image( 142 ).... ;
bossoax
Messages postés
44
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
13 novembre 2012
20 juil. 2009 à 16:05
20 juil. 2009 à 16:05
Merci pour tes réponses.
Su tu veux, je ne peux pas faire cela pour des raisons de performance.
En effet, j'avais demandé quels étaient les impacts mémoire si on utilisait les fonction Javascript pour trouver les elements en fonction de leur nom, malheureuseument c'est assez gourmand.
C'est pour cela que j'aurais voulu les dispatcher en groupes, puis choisir document.[groupe1].images[0], images[1]...
Cela aurait été bénéfique en terme de vitesse.
Ma page est complétement remplie de petits curseurs pour chaque enregistrement reçu de la base de données.
SI j'emploie ces fonction, ca laggue du tonerre !
Merci pour tes réponses, il n'existe donc pas de formulaire qui encapsule les images pour éditer leur propriétés.
Je conserve mes calculs avec les document.elements.length pour me déplacer de formulaire en formulaire.
Su tu veux, je ne peux pas faire cela pour des raisons de performance.
En effet, j'avais demandé quels étaient les impacts mémoire si on utilisait les fonction Javascript pour trouver les elements en fonction de leur nom, malheureuseument c'est assez gourmand.
C'est pour cela que j'aurais voulu les dispatcher en groupes, puis choisir document.[groupe1].images[0], images[1]...
Cela aurait été bénéfique en terme de vitesse.
Ma page est complétement remplie de petits curseurs pour chaque enregistrement reçu de la base de données.
SI j'emploie ces fonction, ca laggue du tonerre !
Merci pour tes réponses, il n'existe donc pas de formulaire qui encapsule les images pour éditer leur propriétés.
Je conserve mes calculs avec les document.elements.length pour me déplacer de formulaire en formulaire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
20 juil. 2009 à 16:18
20 juil. 2009 à 16:18
Euh ...
Je comprend pas bien ou tu veux en venir avec tes images ...
tu veux éditer quoi comme propriété ?
et tu le fait sur toutes les images en même temps ?
t'aurai pas un exemple ? une page pour montrer ce que c'est ?
Je comprend pas bien ou tu veux en venir avec tes images ...
tu veux éditer quoi comme propriété ?
et tu le fait sur toutes les images en même temps ?
t'aurai pas un exemple ? une page pour montrer ce que c'est ?
bossoax
Messages postés
44
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
13 novembre 2012
20 juil. 2009 à 16:44
20 juil. 2009 à 16:44
Dans une page, pour chaque ligne retournée par une requête, j'ai un bouton et une image.
Quand on ne fait rien, l'image est un carré blanc.
Dés que l'on clique sur le bouton d'une ligne, cela lance un traitement en fonction de la ligne.
Pendant ce traitement, je change le carré blanc par un sablier.
Une fois le traitement fini, je remets le carré blanc.
J'ai 3 groupes de lignes retournées. Je peux en avoir X, c'est en fonction de la base de donnéees...
Dans le premier groupe j'ai 20 lignes admettons, dans le deuxiéme 20 lignes, dans le 3éme 20lignes.
Si je cliques sur le bouton 2 du groupe de lignes 2 (22 éme image de la page), je sais pas du tout comment atterir sur mon image.
J'aurais pu mettre image_22 comme ID, mais fonction getElementsByID ne m'interesse plus vu son coût mémoire pour acceder au champ.
Ce que je fais : des maths :
J'ai le numéro de ligne : 2 (ca j'ai le droit je m'y retrouve avec mes formulaires, je le fixe moi meme en générant les lignes)
Ca me donne 2, 2 : la deuxiéme ligne du groupe 2 d'enregistrements.
Je passe moi même les paramétres lors de la génération du code HTML.
Ensuite je fais cela pour trouver mon image :
nb = documents.images.length : le nombre total d'images de la page : 80
En effet, j'ai des images avant mes 3 groupes pour la présentation de la page.
Bon ca je le fixe dans mon javascript, on peut pas faire autrement. On partira de la fin, vous allez voir ...
Je suis obligé de faire :
nb - document.form3.elements.length - document.form2.elements.length + 2
Pour trouver la position de mon image.
Ca ne rame pas du tout, c'est instantané, contrairement à getElementsByID.
Explication : On a dit que j'étais dans le 2éme groupe, 2éme ligne.
Je prends donc la quantité totale d'images, à laquelle je soustrait la quantité de lignes des deux groupes d'enregistrements (le 2 et le 3) puis j'ajoute l'index du groupe courant (2).
C'est pour cela que j'aurais aimé faire document.[form2].images[2].src='sablier'
Ca aurait été été plus simple.
Je vous offre des aspirines si vous voulez :)
Quand on ne fait rien, l'image est un carré blanc.
Dés que l'on clique sur le bouton d'une ligne, cela lance un traitement en fonction de la ligne.
Pendant ce traitement, je change le carré blanc par un sablier.
Une fois le traitement fini, je remets le carré blanc.
J'ai 3 groupes de lignes retournées. Je peux en avoir X, c'est en fonction de la base de donnéees...
Dans le premier groupe j'ai 20 lignes admettons, dans le deuxiéme 20 lignes, dans le 3éme 20lignes.
Si je cliques sur le bouton 2 du groupe de lignes 2 (22 éme image de la page), je sais pas du tout comment atterir sur mon image.
J'aurais pu mettre image_22 comme ID, mais fonction getElementsByID ne m'interesse plus vu son coût mémoire pour acceder au champ.
Ce que je fais : des maths :
J'ai le numéro de ligne : 2 (ca j'ai le droit je m'y retrouve avec mes formulaires, je le fixe moi meme en générant les lignes)
Ca me donne 2, 2 : la deuxiéme ligne du groupe 2 d'enregistrements.
Je passe moi même les paramétres lors de la génération du code HTML.
Ensuite je fais cela pour trouver mon image :
nb = documents.images.length : le nombre total d'images de la page : 80
En effet, j'ai des images avant mes 3 groupes pour la présentation de la page.
Bon ca je le fixe dans mon javascript, on peut pas faire autrement. On partira de la fin, vous allez voir ...
Je suis obligé de faire :
nb - document.form3.elements.length - document.form2.elements.length + 2
Pour trouver la position de mon image.
Ca ne rame pas du tout, c'est instantané, contrairement à getElementsByID.
Explication : On a dit que j'étais dans le 2éme groupe, 2éme ligne.
Je prends donc la quantité totale d'images, à laquelle je soustrait la quantité de lignes des deux groupes d'enregistrements (le 2 et le 3) puis j'ajoute l'index du groupe courant (2).
C'est pour cela que j'aurais aimé faire document.[form2].images[2].src='sablier'
Ca aurait été été plus simple.
Je vous offre des aspirines si vous voulez :)
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
20 juil. 2009 à 18:36
20 juil. 2009 à 18:36
3 choses :
- a priori, il n'y a pas de boucle sur la recherche des images (genre il faut modifier 200 images en même temps), donc je ne vois pas bien le problème de performance.
- si c'est juste pour aller changer la source d'une image en particulier, le getElementById est forcément beaucoup plus rapide qu'un calcul qui va chercher des valeurs on ne sait où dans plusieurs formulaires.
- pour ce qui est de la numérotation des images rien ne t'empêche de les numéroter : image_2_2
- a priori, il n'y a pas de boucle sur la recherche des images (genre il faut modifier 200 images en même temps), donc je ne vois pas bien le problème de performance.
- si c'est juste pour aller changer la source d'une image en particulier, le getElementById est forcément beaucoup plus rapide qu'un calcul qui va chercher des valeurs on ne sait où dans plusieurs formulaires.
- pour ce qui est de la numérotation des images rien ne t'empêche de les numéroter : image_2_2
bossoax
Messages postés
44
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
13 novembre 2012
24 juil. 2009 à 14:17
24 juil. 2009 à 14:17
Meric à tous :)