Partage
  • Partager sur Facebook
  • Partager sur Twitter

Actualisation automatique (toutes les 5 secondes)

Sujet résolu
    10 mars 2010 à 12:13:42

    Bonjour,

    Je cherche à créer un petit script en JS/Ajax qui permettrait de vérifier toutes les 5 secondes un fichier XML.
    Si la balise state de mon fichier XML contient la valeur "done" (comme ceci : <state value="done"/>), alors mon script m'affiche une fenêtre de type alert.
    Sinon, il continue.

    Quelqu'un saurait-il me dire comment procéder ?

    Par avance, merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      10 mars 2010 à 12:23:30

      Bonjour :)

      Premièrement il faut que tu puisses accéder au fichier xml (possible si ce fichier est sur le même serveur que ton script).
      Ensuite il faut utiliser XMLHTTPRequest pour récupérer le contenu de ton fichier xml et vérifier si ta balise a pour value done.
      Tu fais tout ça dans une fonction que tu lances toutes les 5 secondes avec setTimeout.

      Je n'ai tellement le temps et l'envie de faire le code là, mais tu peux déjà te renseigner ^^
      • Partager sur Facebook
      • Partager sur Twitter
        10 mars 2010 à 12:50:57

        Ok, merci beaucoup pour la démarche.
        C'est vrai que JS/Ajax n'est pas du tout mon domaine de compétence, je suis plutôt orienté PHP ;) .
        Je pense qu'en puisant un peu dans chaque tuto, j'arriverai à faire ce que je veux faire.

        Pour info, le script JS appellera le fichier XML qui est sur le même serveur, donc aucun soucis pour ça ;) .

        Si quelqu'un a le temps et l'envie d'écrire le script ou une petite partie (au moins la partie sur la requête XML et le traitement du value="done", je suis preneur et j'en serai très reconnaissant :) .

        Merci en tout cas pour la structure.
        • Partager sur Facebook
        • Partager sur Twitter
          10 mars 2010 à 13:29:51

          La partie sur la requête est intégralement écrite dans le tuto sur Ajax, ainsi que la récupération des données.

          Il faut ensuite que tu passes response.XML à la fonction de callback, qui se chargera de fouiller le fichier.

          Pour cela, tu utiliseras la méthode getElementsByTagName() puis getAttribute('value') et tu vérifieras si la valeur est égale à 'done'.

          Si elle l'est, tu affiches ton alert(), sinon, tu relances la fonction de la requête grâce à setTimeout() ;)


          Ajax et l'échange de données en JavaScript
          • Partager sur Facebook
          • Partager sur Twitter
            10 mars 2010 à 16:17:08

            Ca y est, j'ai presque terminé.
            Seulement, je n'arrive pas à lancer ma fonction toutes les 5 secondes.

            Quelqu'un pourrait me donner la syntaxe exacte ?
            • Partager sur Facebook
            • Partager sur Twitter
              10 mars 2010 à 16:47:18

              Bon bah tout simplement, tu supprimes ta ligne 10, et tu mets ça entre les lignes 15 et 16 par exemple :

              setTimeout(function() {
                request(readData);
              },5000);
              
              • Partager sur Facebook
              • Partager sur Twitter
                10 mars 2010 à 16:54:45

                Oui, ça marche nickel !
                Merci beaucoup ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Actualisation automatique (toutes les 5 secondes)

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown