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 :

[AJAX] XMLHttpRequest et Inclusion de PHP


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut [AJAX] XMLHttpRequest et Inclusion de PHP
    Bonjour a tous.
    je suis en train de faire un piti script ajax (avec le très peu de connaissance que j'ai dans ce domaine actuellement) afin d'inclure une page php dans mon index, pour pouvoir ne rafraichir que la partie inclue par l'ajax, sans actualiser la page:
    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
    <html>
    	<head>
    		<script type="text/javascript">
    			function message()
    			{
    			var xhr_object = null; 
    			if(window.XMLHttpRequest) // Firefox 
    			   xhr_object = new XMLHttpRequest(); 
    			else if(window.ActiveXObject) // IE
    			   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    			else { // non supporté
    			   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			   return; 
    			} 
    			xhr_object.open("GET", "chat.php", true); 
    			xhr_object.onreadystatechange = function() { 
    			if(xhr_object.readyState == 4) document.getElementById( 'message' ).innerHTML = xhr_object.responseText; 
    			} 	 
    			xhr_object.send(null);
    			}
    			function refresh()
    			{
    				message();
    				setTimeout(refresh, 2000);
    			}
    		</script>
    	</head>
    	<body onload='javascript:message()'>
    		<div id='message'></div>
    		<script type="text/javascript">
                refresh();
            </script>
    	</body>
    </html>
    Ca marche nickel comme je veux... enfin... sous Firefox :S
    Par-ce que pour IE, le refresh ne fonctionne pas.
    même en rafraichissant manuelement (F5 ou ctrl+F5) ça ne marche pas, je suis obligé de supprimer les fichiers temporaires pour que la mise à jour du fichier (chat.php) soit prise en compte.
    Quelqu'un aurait il une idée du pourquoi du comment, et surtout un moyen de parer ce problème.
    Merci d'avance

  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
    C'est un problème récurrent, tu appelles toujours la même page, donc IE utilise celle qui se trouve en cache. Pour parer à cela, il faut ajouter un paramètre à ta page (ex : nombre aléatoire ou timestamp) pour forcer IE à aller chercher sur le serveur.
    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 éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut
    Vui ça marche déjà mieux:
    j'ai modifier la ligne d'inclusion par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object.open("GET", "chat.php<?php echo time();?>", true);
    Maintenant quand j'appuye sur F5, ça fonctionne, plus besoin de vider les fichiers temporaire, mais la fonction refresh() ne fonctionne toujours pas, je dois encore presser F5 pour voir les mises a jours

    Merci déjà
    Une idée pour la suite ?

  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
    Oui, si tu mets le timestamp coté serveur, tant que tu restes sur la page (ce qui est le but d'Ajax : pas de rechargement) c'est encore la même url qui est appelée... donc retour au problème de cache !
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var time_stamp = new Date();
    xhr_object.open("GET", "chat.php?"+time_stamp, true);
    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 éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Oui, si tu mets le timestamp coté serveur
    Pfff... bah ouais j'suis con.
    Bah écoute merci beaucoup ça fonctionne niquel grâce à toi
    A une prochaine

    Résolu.

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

Discussions similaires

  1. [AJAX] Portage de Ruby vers PHP
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 01/02/2008, 10h15
  2. [AJAX] Cherche Chat php / ajax / XMLHTTPRequest sans SQL
    Par fabien14 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/02/2007, 12h23
  3. [AJAX] XMLHTTPRequest => impossible d'exécuter tout script php
    Par AzertyH dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2006, 19h01
  4. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59

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