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] chargement à l'infini et page blanche


Sujet :

AJAX

  1. #1
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Points : 374
    Points
    374
    Par défaut [AJAX] chargement à l'infini et page blanche
    Bonjour,
    j'essaye de faire un chat en php + javascript/ajax
    pour ajouter un message, pas de souci, ça fonctionne par contre, j'ai un souci lors de la recherche de nouveaux messages.
    pour cela, j'envoie une requête ajax sur la page des messages toutes les 10 secondes.
    Le problème c'est que à l'ouverture de la page, la page reste blanche et charge indéfiniment puis j'ai un message de firefox
    Citation Envoyé par firefox
    Un script sur cette page est peut-être occupé ou ne répond plus. Vous pouvez arrêter le script maintenant ou attendre pour voir si le script se terminera.
    que je fasse continuer ou arrêter, le résultat est le même et la page continue à se charger puis le même message apparaît.

    Voici le code que j'ai utilisé :
    Code HTML : 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 type="text/javascript">
            window.onload=chat();
            function refresh(file) {
                    var xhr = new XMLHttpRequest();
                    xhr.open('get', file);
                    xhr.onreadystatechange = function(){
                            if(xhr.readyState == 4 && xhr.status == 200){
                                    document.getElementById('chat').innerHTML = xhr.responseText;
                            }
                    };
                    xhr.send(null);
            }
            function envoi(){
                    var texte = "chat_msg.php?add=" + document.getElementById('texte').value;
                    refresh(texte);
                    return false;
            }
            function chat(){
                    var texte = "chat_msg.php";
                    refresh(texte);
                    setTimeout(chat(), 10000)
            }
    </script>
    <div id='chat'></div>
    <form>
    <textarea id="texte" rows="3" cols="10">message</textarea>
    <input type="button" value="envoyer" onclick="envoi();"/>
    </form>

    Le fichier chat_msg.php contient ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_GET['add'])){
    	$msg = utf8_decode($_GET['add']);
    	$msg.= "<br>";
    }
    $msg .= "coucou ceci est un message de test";
    echo $msg;
    ?>

    c'est juste en test pour le moment, c'est normal que la page chat_msg.php soit si basique

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Peut-on avoir la totalité du code source de la page générée ? (pas de PHP)

    En attendant essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.addEventListener("load", function(){
       chat();
    });
    au lieu de window.onload=chat();

  3. #3
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Points : 374
    Points
    374
    Par défaut
    ben non je peux pas voir le code source pendant le chargement de la page (au passage, la page fait planter firefox et je suis obligé de l'arrêter de force) mais j'ai fait un copier coller intégral de la page html que j'ai faite, j'ai juste retiré ceci :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>chet</title>
    </head>
    </html>

    la page s'affiche au bout de 5 minutes, le message d'erreur reste le même et c'est impossible de cliquer sur quoi que ce soit, ça fait planter ff

    edit :
    quand je clique sur arrêter le script, la page se débloque mais du coup, plus aucun code js n'est exécuté (ni envoi, ni actualisation auto)...

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    Bonjour,
    c'est quoi cette syntaxe ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(chat(), 10000)
    setTimeout attend une référence à une fonction, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout( chat, 10000);
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setTimeout( function(){
      // instructions à réaliser 
    }, 10000);

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    C'est un peu le désordre dans tes codes, sans compter la syntaxe
    Je ne voudrais pas vendre mes écris, mais télécharges les sources
    y compris le SQL, lits bien ce très simple exemple, ensuite tu l'adapteras comme tu veux !
    http://ajax.developpez.com/tutoriels...ajax-en-clair/

    A++
    Christele

  6. #6
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Points : 374
    Points
    374
    Par défaut
    oui, effectivement, c'est le désordre ^^ en fait, je fais des tests donc je ne me soucie pas de la syntaxe ni de la "beauté du code" c'est pas une bonne habitude je sais et ça facilite pas les choses quand j'ai besoin d'aide comme ici mais ne production, je fais gaffe : )

    en tous cas, mon problème est résolu, effectivement, dans le setTimout c'était bien setTimeout( chat, 10000); la bonne syntaxe

    Merci pour votre aide et merci christele_r pour le lien

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

Discussions similaires

  1. [AJAX] chargement de deux pages differentes dans deux div
    Par vacknov dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/06/2007, 17h31
  2. [AJAX] Chargement de la page
    Par vacknov dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/05/2007, 14h33
  3. [AJAX] Chargement d'une seule partie de la page
    Par gids01 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 25/03/2007, 19h44
  4. [AJAX] chargement infini de la page ..
    Par dada17 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2007, 15h01
  5. page blanche pendant le chargement
    Par natsou_k dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/01/2006, 16h01

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