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

jQuery Discussion :

setInterval & fonction 'load'


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 17
    Points : 16
    Points
    16
    Par défaut setInterval & fonction 'load'
    Bonjour les gens,

    je m'essaye au JS et je voudrais créer un mini chat avec BdD MySQL.
    Pour charger les messages sur ma page j'utilise les fonctions setInterval
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        setInterval('loadMessage()', 1000);
    et pour le chargement dans un div via un id je lis un fichier avec la fonction load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        function loadMessage(){
            $('#messages').load('views/message.load.php')
        }
    la fonction de lecture de la bd
    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
        // LECTURE MESSAGES
        function bdLireMessageChat(){
            // CONNEXION
            $pdo = monPDO::getPDO();
            // REQUETE
            $SQL = "SELECT * FROM Effer_Chat ORDER BY id DESC";
            // PREPARATION REQUETE ( SECURITE )
            $stmt = $pdo->prepare($SQL);
            // EXECUTION
            $stmt->execute();
            // RESULTAT & RETOUR
            $resultat = $stmt->fetchAll(PDO::FETCH_ASSOC);
            $stmt->closeCursor();
            return $resultat;
        }
    et la page affichée grace à la fonction load
    Code htm : 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
    <?php
    require_once('../../models/PDO.class.php');
    require_once('../../models/model.main.php');
     
    $resultats = bdLireMessageChat();
    ?>
     
        <?php foreach($resultats as $message) : ?>
        <div class="w3-panel w3-card-4">
            <div class="w3-col w3-padding-16" style="width:100px">
                <img src="./public/assets/images/avatars/<?= $message['avatar']; ?>" alt="Avatar" style="width:75%;" class="w3-round">
            </div>
            <?php
            ?>
            <div class="w3-rest">
                <h6>Posté par <b><?= $message['pseudo']; ?></b></h6>
                <p><i><?= nl2br($message['message']); ?></i></p>
            </div>
        </div>
        <?php endforeach; ?>

    Je pense ne rien avoir oublié.
    Le résultat de tout ça, et bien...rien, le fichier me charge bien la page de lecture et affiche mes 2 messages tests, mais rien en cas de nouveaux messages, et même quand je supprime en BdD des données, j'ai l'impression qu'il faut 5 minutes pour réactualiser ma page et en forçant le rechargement de ma page, idem...

    Pour info, aucun problème en local, je n'ai le problème qu'en ligne ( Firefox, Chrome, edge )
    Help SVP

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 125
    Points
    44 125
    Par défaut
    Bonjour,
    tu as sûrement un problème de cache jQuery.load() utilisant par défaut la méthode GET.

    Tu peux passer en méthode POST en utilisant le paramètre data, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#messages').load('views/message.load.php', {"time" : Date.now() });

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci de t'être intéressé à mon problème, mais pas de changement malheureusement

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 125
    Points
    44 125
    Par défaut
    Dans ce cas regarde du côté des header en PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 17
    Points : 16
    Points
    16
    Par défaut

    merci, cela fonctionne nickel.
    Si j'ai bien compris, tes deux lignes de codes empêchent la mise en cache de la page, mais pourtant dans mes test, même en vidant les fichiers résiduels de Firefox (cache, cookie, ...), cela ne fonctionnait pas :'(

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 125
    Points
    44 125
    Par défaut
    Là on parle de mise en cache côté serveur et non client.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    OK, compris.
    Merci de ton temps et de ton aide.

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

Discussions similaires

  1. La fonction load ne load pas
    Par elliotg dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 17/02/2009, 17h52
  2. [AJAX] fonction load
    Par Lili72430 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2008, 10h08
  3. Fonction LOAD DATA INFILE avec un fichier source csv
    Par mabret dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 25/03/2008, 14h06
  4. la fonction load de XMLDOM
    Par fadex dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/03/2007, 09h45
  5. [DOM XML] Erreur fonction load() d'un objet dom??
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h43

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