Ajouter un nœud dans un DOM

Pour afficher immédiatement mon message dans mon chat

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Pour un chat, je récupère, à intervalle régulier, une liste de messages au format XML. Ainsi, je peux mettre à jour un DOM à partir duquel j'affiche l'historique des messages.

Lorsque j'envoi un message, j'aimerais ne pas attendre le prochain rafraîchissement pour le voir apparaître dans l'historique, sur la page du visiteur. Pour cela, je voudrais ajouter mon nœud message au DOM pour l'afficher immédiatement avant de l'envoyer réellement.

Voici un code simplifié du problème : (voir en live)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
header('Content-type: text/xml');
?>
<corp>
    <lu valeur="0"/>
    <clavier valeur="0"/>
    <connecte valeur="0"/>
    <message heure="03h57" avatar="avatar1.jpg" id_auteur="1" contenu="Au revoir"/>
    <message heure="03h56" avatar="avatar1.jpg" id_auteur="1" contenu="Puis-je vous aider ?"/>
    <message heure="03h55" avatar="avatar1.jpg" id_auteur="1" contenu="Comment allez vous ?"/>
    <message heure="03h54" avatar="avatar1.jpg" id_auteur="1" contenu="Bonjour"/>
</corp>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>Probleme Javascript</title>
    </head>

    <body>
        <input type="button" onclick="lire_messages(false)" value="sans le message en plus" />
        <input type="button" onclick="lire_messages(true)" value="avec le message en plus" />
    </body>

    <script>

        // Cette fonction doit ajouter un noeud message au DOM
        function ajouter_un_message(ndom)
        {
            // Ici, comment ajouter un noeud <message/> supplementaire disant par exemple "a bientot" ?


            return ndom;
        }

        function lire_messages(ajouter_message)
        {
            // Construction de l'objet pour lancer la requette
            var xhr=new XMLHttpRequest();

            // Description de la fonction a appeler lors de la reponse a la requette
            xhr.onreadystatechange = function() {

                // Si la reponse nous est parvenue sans probleme
                if(xhr.readyState == 4 && xhr.status == 200)
                {
                    // Lecture des messages bruts
                    var ndom=xhr.responseXML;

                    // Si on doit ajouter un message
                    if (ajouter_message)
                    {
                        // Ajout du message
                        ndom = ajouter_un_message(ndom);
                    }

                    // Affichage des messages bruts
                    alert ((new XMLSerializer()).serializeToString(ndom));
                }
            };

            // Lancement de la requette HTTP
            xhr.open('GET', 'xml_gen.php', true);
            xhr.send(null);
        }

    </script>
</html>

J'ai besoin d'aide au niveau de l'écriture de la fonction permettant l'ajout du message. Pouvez-vous m'aider ?

Merci.

Seb.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte