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

AJAX Discussion :

[AJAX] Rafraichir les données automatiquement


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut [AJAX] Rafraichir les données automatiquement
    Bonjour,
    J'ai une nouvelle question, cette fois ci sur le rafraichissement de données une fois celles ci récupérées en Ajax.

    je range le resultat de ma demande ajax dans une variable MonAjax : "MonAjax.responseText;" Cette réponse fait appel à un fichier php qui contient une valeur qui change toutes les minutes. Et donc j'aimerais faire en sorte que la réponse ajax affiche cette valeur sans avoir besoin de faire F5 .

    J'ai essayé de mettre un setInterval mais cela n'a aucun effet.
    Voici le code complet au cas où :

    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
    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
     
    <html>
    <head>
     <script src="js/gauge.js" type="text/javascript" language="javascript"></script>
     
    <script type='text/JavaScript'>
     
     
    function maFonctionAjax()
    {
      var MonAjax;
      if (window.XMLHttpRequest)
      {
        // Mozilla, Safari, ...
        MonAjax = new XMLHttpRequest();
      }
      else if (window.ActiveXObject)
      {
        // IE
        MonAjax = new ActiveXObject('Microsoft.XMLHTTP');
      }
      else
      {
        alert("Votre navigateur n'est pas adapté pour faire des requêtes AJAX...");
        MonAjax = false;
      }
     
      MonAjax.onreadystatechange = function()
      {
        if (MonAjax.readyState == 4 && MonAjax.status == 200)
        {
     
    	  document.getElementById("ma_div").innerHTML = MonAjax.responseText;
        }
      };
     
      MonAjax.open('GET',"compt.php",true);
     
      MonAjax.send(null);
    }
     
    maFonctionAjax();
     
    window.onload = function(){setInterval("refresh",1000)};
    		</script>
     
    </head>
     
    <body>
    		<div id="ma_div"></div>
    		<canvas id="nbr" width="200" height="120"></canvas>
     
    	</body>
     
    </html>
    Merci

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function(){setInterval("refresh",1000)};
    Encore une fois, un peu de lecture : Les fonctions de rappel (callback) ou les utilisations cachées de eval()

    Ca pourrait t'être utile de chercher un peu avant de poster...
    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

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    Merci, je ne savais pas que cela se nommait comme ça, je vais donc lire la documentation.

  4. #4
    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
    Certes, mais se renseigner sur la syntaxe de setTimeout() aurait dû être ton premier réflexe avant de poster...
    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

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    Voici mon raisonnement : SetTimeout indique un délai avant exécution et setInterval déclenche une opération à intervalles réguliers . Donc vu que je recherche a rafraichir automatiquement ma valeur je dois bien utiliser setInterval. J'ai donc lu la documentation, j'ai pas trop tout compris mais dans mon cas je devrait utiliser cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setInterval(maFonction, délai);
    et donc ici je souhaite déclencher maFonctionAjax toutes les x secondes pour quelles s’exécute et donc afficher la nouvelle valeur.
    Donc j'ai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function(){setInterval(maFonctionAjax(),1000)};
    Mais bien sur cela ne marche pas.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    J'ai fini par trouver tout seul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setInterval('maFonctionAjax()', 1000)
    Avec les balises codes !!!

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

Discussions similaires

  1. Comment rafraichir les données d'un Treeview ?
    Par Jordmund dans le forum IHM
    Réponses: 4
    Dernier message: 23/04/2008, 07h33
  2. rafraîchir les données automatiquement
    Par jazziestan dans le forum Débuter
    Réponses: 3
    Dernier message: 12/11/2007, 11h37
  3. Comment "rafraichir" les données d'un SqlDataSource ?
    Par harry25 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/08/2007, 16h27
  4. Réponses: 3
    Dernier message: 13/04/2007, 10h04
  5. rafraichir les donnée d'une combobox
    Par qbihlmaier dans le forum IHM
    Réponses: 1
    Dernier message: 06/12/2005, 19h07

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