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 :

Forcer l'affichage dans une boucle


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Forcer l'affichage dans une boucle
    Bonjour,

    Dans une page HTML j'ai une boucle en javascript qui modifie une DIV de ma page, pour informer sur le traitement en cours. (c'est une espece de LOG)

    Mon probleme est que le resultat est visible à l'ecran uniquement lorsque ma boucle se termine. ALors que je voudrais voir l'affichage au fur et à mesure
    Y a t il un moyen de forcer l'affichage au cours de l'execution de ma boucle ?

    Remarque: j'ai essayé avec un TEXTAREA j'ai le meme pb.

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    pourrais-tu expliciter ?
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Exemple de code pour illustrer
    Voici un bout de code qui illustre mon pb
    <body>
    <div id=TESTDIV>
    </div>
    <script>
    alert("Debut");
    for (var i=0; i<20; i++)
    {
    TESTDIV.innerHTML += "<br>Passage dans boucle i="+i;

    for (j=0;j<100000;j++)
    {
    var a=Math.log(3);
    // juste pour passer le temps
    }
    }
    alert("Fin");
    </script>
    </body>

    On constate que l'affichage des 20 lignes s'effectue d'un bloc à la fin. au lieu de s'afficher au fur et à mesure.

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Javascript bloque l'affichage de la page, c'est bien connu...

    Regarde si ca peut d'aider, j'adapte depuis un code plus long perso :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Iterator = function (Data) {
        this.Data=Data;
        this.Item=0;
        this.Next=function() {
            var currentIterator=this;
            this.executingMethod(this.Data[this.Item])
            this.Item++
            setTimeout(function() {
                currentIterator.Next();
            }, 0)
        }
        this.executingMethod=function (Item) {
             // Action
        }
    }
     
    var newIterator=new Iterator([0, 1, 2, 3, 4, 5])
    newIterator.executingMethod=function (Nbr) {
        document.getElementById("divContent").innerHTML += Nbr + "<br />"
    }
    newIterator.Next();
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  5. #5
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    ceci marche nickel chez moi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <html>
    <head>
     
    <script>
    alert("Debut");
    var i=0;
    var timer;
    function afficher()
    {
    document.getElementById('TESTDIV').innerHTML += "<br>Passage dans boucle i="+i++;
    if (i<10)
    timer=setTimeout("afficher()",1000);
    else clearTimeout(timer);
    }
    </script>
     
    </head>
    <body onload=afficher()>
    <div id=TESTDIV>
    </div>
     
    </body>
    </html>
    houlà, fremy ton code est pour un débutant... lol
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OneToOne : affichage dans une boucle
    Par golf3gtiii dans le forum Doctrine2
    Réponses: 2
    Dernier message: 14/10/2011, 12h23
  2. Mise en forme de l'affichage dans une boucle
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2010, 16h50
  3. Réponses: 5
    Dernier message: 30/06/2008, 14h43
  4. [Smarty] Forcer le nombre de passage dans une boucle
    Par arnogb69 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2008, 15h15
  5. Forcer l'affichage d'une page dans un cadre
    Par Thcan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/11/2005, 10h58

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