IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

DOM "mal" actualisé


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Par défaut DOM "mal" actualisé
    Bonjour à tous,

    J'ai un problème que je n'arrive pas à résoudre, j'en appelle donc à vos lanternes !

    J'ai fait un petit script JS qui me rajoute des balises input file pour l'envoi de pièces jointes au besoin.
    Je l'utilisais dans un petit formulaire et tout fonctionnait très bien.
    Hier j'ai voulu le rajouter un à formulaire plus conséquent ( contenant 40 input ) et il ne fonctionne plus. En fait, c'est la liste "elements" de mon formulaire qui n'est pas actualisée. Mon script crée bien les objets html qui s'affichent sur la page, mais ils ne semblent pas référencés dans le DOM ?!?

    Est ce que ce problème vous dit quelques choses ? je n'ai rien trouvé sur le net..

    Je vous joins le fichier html, désolé, il est pas très propre, mais j'ai viré pas mal de choses pour le mettre ici, et je suis obligé de tout mettre vu que le problème ne vient que de ce formulaire..

    Par avance, merci pour votre aide

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Par défaut
    J'ai finalement résolu le problème en enlevant la table qui contenait le formulaire..
    Bon par contre, j'ai pas du tout compris le problème Est ce qu'il y a une limie de profondeur à partir de laquelle le DOM n'est plus rafraichit ?

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu as dû faire une erreur quand tu a modifié ton code...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    Citation Envoyé par champoul Voir le message
    J'ai finalement résolu le problème en enlevant la table qui contenait le formulaire..
    Bon par contre, j'ai pas du tout compris le problème Est ce qu'il y a une limie de profondeur à partir de laquelle le DOM n'est plus rafraichit ?
    sur ce coup sans code difficile de dire, d'où provient ton soucis, mais quoi qu'il en soit la "profondeur" du DOM est rafraichit même les jours de grande chaleur :O))

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par champoul
    J'ai finalement résolu le problème en enlevant la table qui contenait le formulaire..
    Ah ben c'est sûr, si tu cherches les problèmes
    Autant il est possible d'avoir un tableau dans un formulaire, autant le contraire est problématique.
    Citation Envoyé par champoul
    Bon par contre, j'ai pas du tout compris le problème Est ce qu'il y a une limie de profondeur à partir de laquelle le DOM n'est plus rafraichit ?
    Non, pas de notion de "profondeur", en revanche, chaque modification entraine un reflow et il peut être nécessaire d'attendre que l'ensemble soit effectif.
    Une astuce pour remédier à cela est de mettre le reste du traitement dans un setTimeout avec un délai à 0 ce qui entraine l'exécution du timeout dès que la pile d'appels est vide.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    sur ce coup sans code difficile de dire, d'où provient ton soucis, mais quoi qu'il en soit la "profondeur" du DOM est rafraichit même les jours de grande chaleur :O))
    En réalité, le code était bien en pièce jointe, mais quand j'ai résolu mon problème comme le code pouvait être "sensible" ( normalement nettoyé, mais je me connais, on ne sait jamais.. ), j'ai préféré enlever le code

    Citation Envoyé par Bovino Voir le message
    Ah ben c'est sûr, si tu cherches les problèmes
    Autant il est possible d'avoir un tableau dans un formulaire, autant le contraire est problématique.
    Ah ouai ? J'étais pas au courant de ça ! C'est gênant uniquement quand le formulaire est un noeud fils direct d'une table ou c'est dans tous les cas ?

    Citation Envoyé par Bovino Voir le message
    Non, pas de notion de "profondeur", en revanche, chaque modification entraine un reflow et il peut être nécessaire d'attendre que l'ensemble soit effectif.
    Une astuce pour remédier à cela est de mettre le reste du traitement dans un setTimeout avec un délai à 0 ce qui entraine l'exécution du timeout dès que la pile d'appels est vide.
    Ok, merci pour ton explication

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo