Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1383 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX] Pb de rafraichissement de calques

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AJAX] Pb de rafraichissement de calques

n°1965041
Yaotzyn
Posté le 11-02-2010 à 15:54:35  profilanswer
 

Bonjour à tous,

 

Je rencontre un petit soucis lors d'un essai d'un code en Ajax.

 

J'utilise une page html classique avec un div à l'intérieur qui va recevoir les données de l'ajax :

 
Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  5. <script language="JavaScript" type="text/javascript" src="points.js">
  6. </script>
  7. <script language=javascript>
  8. setInterval(AddPoints, 5000);
  9. </script>
  10. </head>
  11. <body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
  12. <div id="ajax"></div>
  13. </body>
  14. </html>
 

Comme vous pouvez le voir, dans cette page un script javascript est appelé (points.js) qui contient une fonction AddPoints, fonction que je lance sur un intervale de 5 secondes grâce à setInterval(AddPoints, 5000);

 

Voici le contenu du javascript qui va simplement récupérer l'heure + minute + secondes et l'insérer dans le div.

 
Code :
  1. var xmlhttp;
  2. function AddPoints(pts)
  3. {
  4. xmlhttp=GetXmlHttpObject();
  5. if (xmlhttp==null)
  6.  {
  7.  alert ("Browser does not support HTTP Request" );
  8.  return;
  9.  }
  10. var url="points.php";
  11. url=url+"?login="+pts;
  12. xmlhttp.onreadystatechange=pointsChanged;
  13. xmlhttp.open("GET",url,true);
  14. xmlhttp.send(null);
  15. }
  16. function pointsChanged()
  17. {
  18. if (xmlhttp.readyState==4)
  19.  {
  20.  document.getElementById('ajax').innerHTML=xmlhttp.responseText;
  21.  }
  22. }
  23. function GetXmlHttpObject()
  24. {
  25. if (window.XMLHttpRequest)
  26.  {
  27.  // code for IE7+, Firefox, Chrome, Opera, Safari
  28.  return new XMLHttpRequest();
  29.  }
  30. if (window.ActiveXObject)
  31.  {
  32.   // code for IE6, IE5
  33.  return new ActiveXObject("Microsoft.XMLHTTP" );
  34.  }
  35. return null;
  36. }
 

Mon problème est le suivant : Sous firefox, aucun pb, le script se relance toutes les 5 secondes et le nouveau temps est correctement affiché dans le div.

 

Par contre sous Internet explorer 8, la fonction se lance une première fois, mais ensuite l'heure reste fixe et donc ne change plus.

 

J'ai d'abord cru à un dysfonctionnement de la fonction setInterval, puis me suis rendu compte qu'en rafraichissant la page, l'heure restait la même dans le div.

 

J'ai, à ce moment, vider le cache d'ie8 et la, le calque s'est mis à jour.

 

Ce serait donc le cache d'internet explorer qui conserverait les données et donc n'afficherait pas celles envoyées par l'ajax.

 

Quelqu'un sait il si il y a un moyen de contourner ce problème ou si mon script est mal construit ?

 

Merci d'avance.


Message édité par Yaotzyn le 11-02-2010 à 15:56:47
mood
Publicité
Posté le 11-02-2010 à 15:54:35  profilanswer
 

n°1965047
gatsu35
Blablaté par Harko
Posté le 11-02-2010 à 16:12:18  profilanswer
 

cache ?  
cf poste juste avant


---------------
Blablaté par Harko
n°1965064
Yaotzyn
Posté le 11-02-2010 à 16:37:58  profilanswer
 

En effet,
 
Merci beaucoup.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX] Pb de rafraichissement de calques

 

Sujets relatifs
Les sessions et l'ajax[AJAX] Ne fonctionne pas sous IE ...
PB requête récursivePB suppression de ligne dans JTable
Pb de graphisme autour d'une video via un lien copiéRobot web en perl et ajax
Aide Ajax Chat[RESOLU] Probleme avec AJAX Star Rating sur IE
PB blocage variable[HTML/Css/Javascript] Listes liées avec la librairie prototype
Plus de sujets relatifs à : [AJAX] Pb de rafraichissement de calques


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR