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 :

actualiser une Div par ajax lors d'un changement coté serveur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 22
    Points
    22
    Par défaut actualiser une Div par ajax lors d'un changement coté serveur
    Salut à tous ,
    Ce que je veux faire est simple à expliquer :

    J'utilise pour l'instant ce code AJAX :


    Code :
    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
     <script>
    function refresh_div()
    {
    var xhr_object = null;
    if(window.XMLHttpRequest)
    { // Firefox
    xhr_object = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    { // Internet Explorer
    xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
    }
    var method = 'POST';
    var filename = 'affichage.php';
    xhr_object.open(method, filename, true);
    xhr_object.onreadystatechange = function()
    {
    if(xhr_object.readyState == 4)
    {
    var tmp = xhr_object.responseText;
    document.getElementById('mon_div').innerHTML = tmp;
    }
    }
    xhr_object.send(null);
    setTimeout('refresh_div()', 5000);
    }
    </script>
    Qui affiche la page dans cette DIV :




    Code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <body onload='refresh_div();'>
    <div id='mon_div'>
    </div> 
     
    </body>
    Ma page de traitement qui affiche les messages s'appelle : affichage.php
    C'est juste une page qui liste une base de données

    Cela fonctionne tres bien

    Alors , ce que je veux faire , c'est d'actualiser mon DIV , que si il y a un nouveau message dans la base de données car avec mon exemple , la div est actualisé toutes les 5 secondes et sans interruption .

    Pour ce faire , je choisis par exemple de compter le nombre d'enregistrement , et d'actualiser la DIV que si le nombre d'enregistrement à changé .
    Pour l'exemple , soit $nb_lignes le nombre d'enregistrement
    actualiser une Div san au x second son chargement du page ca se que je veux
    Quelqu'un a une idée .
    Merci de m'aider

  2. #2
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Citation Envoyé par dajij Voir le message
    actualiser une Div san au x second son chargement du page ca se que je veux
    ???

    j'ai compris quand même !

    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
     
    <script>
    function refresh_div()
    {
    var xhr_object = null;
    if(window.XMLHttpRequest)
    { // Firefox
    xhr_object = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    { // Internet Explorer
    xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
    }
    var method = 'POST';
    var filename = 'affichage.php';
    xhr_object.open(method, filename, true);
    xhr_object.onreadystatechange = function()
    {
    if(xhr_object.readyState == 4)
    {
    var tmp = xhr_object.responseText;
    document.getElementById('mon_div').innerHTML = tmp;
    refresh_div();
    }
    }
    xhr_object.send(null);
    }
    </script>
    et ta page php ne renvoit rien tant qu'il n'y a pas eu de changement (une fonction qui tourne en boucle).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    J'ai une petite question à propos de ce code qui m'a beaucoup aidé : Je veux m'en servir pour un chat (enfin plutot un Instant Messenger en fait) ainsi que pour actualiser certaines infos du site en temps réel.

    Admettons qu'il y ait 300 connectés sur le site, cela ne risque de faire ramer le site si 300 personnes envoient en permanence un minimum de 2 requêtes en permanence ? Cela joue-t-il également sur le trafic généré (j'ai le droit à 600Go mensuel de trafic en mutualisé) ?

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    faite deux services
    un qui donne la date de maj
    un autre pour le service normal!

Discussions similaires

  1. [Debutant] changer des images dans une div par une fonction javascript
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2007, 09h35
  2. contenu d'une div par dessus une autre
    Par bonjour69 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/01/2007, 09h43
  3. actualiser une DIV contenant des images
    Par jc_cornic dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2006, 15h42
  4. Fermer une div par un clic
    Par lhulard dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/09/2006, 14h58
  5. [AJAX] Actualisation d'une page par AJAX
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2006, 13h07

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