Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
majong
# 21 Apr 2008 - 11:40:50
Citer
4 Posts
Bonjour, il me semble qu'avec de l'ajax on peut afficher une partie des données en temps réel. Pour cela j'ai deux fichiers test.html et test.php
Sur test.php je fais une connexion à ma bdd et je fais suite à une requete:
echo '<font>'.$row['premier'].'</font>;


Dans le fichier test.html j'ai:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">
var xhr_object;
function affiche()
{
setTimeout('affiche()',10000);
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", "test.php", true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
{
//alert(xhr_object.responseText);
document.getElementById("boite1").innerHTML=xhr_object.responseText;
}
}

xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = null;
xhr_object.send(data);
}



</script>
</head>
<body onLoad="affiche()">
<div id="boite1">
</div>
</body>
</html>


A priori 'premier' devrait se rafraichir tous les 10s, ce qui n'est pas le cas. On ne peut pas utiliser cette fonctionnalité dans ce sens ?
(si je ferme ma page html et je relance, l'affichage est correcte avec la donnée de la bdd mais tj pas le rafraichissement)
(si j'enlève le commentaire //alert(xhr_object.responseText); j'ai l'affichage du meme texte alors que dans ma bdd le champ à changé de valeur)
Modifié par majong (21 Apr 2008 - 13:58)

^
koala64
# 21 Apr 2008 - 12:04:00
Citer
Modérateur
3884 Posts
Bonjour majong et bienvenue parmi nous smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Merci d'avance smile

previews/1-code.gif

^
just1dks
# 21 Apr 2008 - 18:01:33
Citer
38 Posts
Vérifie un coup si ton navigateur ne met pas en cache les données qu'il reçoit la première fois. Utilise une fonction php pour cela, dans le document que tu importes.

J'ai déjà vu, je pense, des exemples de codes similaires et tout allait bien. Ce n'est peut-être qu'une erreur d'inattention

Just'1

^
majong
# 22 Apr 2008 - 10:53:12
Citer
4 Posts
Je pense que oui, comment puis-je remédier à ce problème de cache ?

^
steph29
# 22 Apr 2008 - 11:44:13
Citer
22 Posts
ton setTimeout('affiche()',10000);
doit etre en dehors de ta fonction affiche...

^
majong
# 22 Apr 2008 - 13:27:39
Citer
4 Posts
Juste, mais le problème reste inchangé.
Modifié par majong (22 Apr 2008 - 13:28)

^
steph29
# 23 Apr 2008 - 10:40:34
Citer
22 Posts
A priori c'est pas un pb de ta fonction elle fait bien le premier affichage.
donc c'est un pb de chache et Je parie que tu teste sous IE...
IE gere tres mal le chache et les fichiers ajax
une solution est de passer en methode POST
ou sinon de lui passer un parametre qui change tout le temps (un datetime par exemple)

^
majong
# 24 Apr 2008 - 15:06:57
Citer
4 Posts
C'est une bonne réponse j'ai passé une date en paramètre et le problème n'est plus. Grand merci.

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.7.9 © dew
Contacter l'administrateur - 8.9 ms - Charte