rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[AJAX] Problème de compatibilité IE

Posté par Seb, le mardi 29 août 2006 à 14:09:27
Bonjour,

Je fais des tests sur la techno AJAX et rencontre un problème depuis plusieurs jours sans trouver de solution.

Le script de test que j'ai réalisé est ici : http://gameonweb.free.fr/Ajax/.
Ca consiste juste à mettre à jour régulièrement 2 zones de la page (avec des temps de chargement différents pour vérifier l'affichage du message d'attente) et la mise à jour manuelle d'une troisième zone ("test3").

Le script marche parfaitement sous FireFox mais pas du tout sous IE :(
En fait sous IE, la première requête marche mais les requêtes suivantes semblent ne pas passer du tout dans la méthode onreadystatechange de l'objet.

Quelqu'un aurait-il déjà rencontré ce genre de problème auparavant?
Merci d'avance,
Seb.
Répondre à Seb  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Seb, le mardi 29 août 2006 à 15:11:23
Le problème viendrait-il de la définition de la définition de la fonction onreadystatechange dans http://gameonweb.free.fr/Ajax/ajax.js ?
Répondre à Seb

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Seb, le mardi 29 août 2006 à 15:13:07
Le problème viendrait-il de la définition de la définition de la fonction onreadystatechange dans http://gameonweb.free.fr/Ajax/ajax.js ?
Répondre à Seb

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Seb, le mardi 29 août 2006 à 16:23:23
Personne :(
Répondre à Seb

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zigwen, le mardi 29 août 2006 à 16:57:32
Salut,

Je suis loin d'être sur de moi, mais c'est pas tout simplement parceque tu as mis en commentaire la création de l'activeX Microsoft.XMLHTTP ?
@+.
Gwen
Répondre à zigwen

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Seb, le mercredi 30 août 2006 à 10:00:39
Non c'est sensé être compris par IE justement.
Répondre à Seb

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sébastien, le mercredi 11 avril 2007 à 10:38:38
Bonjour

Je profite que ce topic existe déjà pour vous exposer un problème que j'ai rencontré en développant une solution ajax pour le site http://generationsfm.com.

Voici le code de ma fonction dans son état actuel :

<script language="JavaScript" type="text/javascript">

function getXhr() {
var xhr = null;

//firefox
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}

//ie
else if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}

//non supporté
else {
alert("Fonction non supportée par le navigateur");
xhr = false;
}

return (xhr);
}

function getTrack()
{
var xhr = getXhr();

//on définit l'appel de la fonction au retour serveur
xhr.onreadystatechange = function() {

if (xhr.readyState == 4 && xhr.status == 200) {
var resultat = xhr.responseText;
document.getElementById('div_track').innerHTML=resu­ltat;
}

};

//on appelle le fichier reponse.txt
xhr.open("GET","http://generationsfm.com/ajax­_track.php?act=track",true);
xhr.send(null);

setTimeout("getTrack()", 5000);
}

window.onload=getTrack;
</script>

il n'y a aucun problème sous firefox, mais la mise à jour n'est jamais faite sous ie, même en rafraichissant la page :/
le seul moyen de mettre à jour l'affichage est de relancer le navigateur
voilà si quelqu'un à une idée...
merci !

cordialement
sébastien
Répondre à Sébastien

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Waar, le mercredi 6 juin 2007 à 00:09:49
Sous IE il faut appeller la fonction :
header("Cache-Control: no-cache");
au debut de votre fichier php.
Ou alors mettre la meta balise equivalente.
Sinon il ne mettra pas a jour les appels apres le premier.
J'avais le meme probleme, avec ca ca a marche.
J'espere que ca vous aidera.

Fab.
Répondre à Waar

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elmoute49, le samedi 5 avril 2008 à 00:43:21
Un coucou pour te dire MERCI

je commencais à faire des requetes via XmlHttpRequest...

A chaque lancement de la fonction une requete SQL via une autre page php

et mon pb etait que sous IE j'avais un souci par rapport

à mozilla et opera resolu par le fait d'inserer la commande suivante:

header("Cache-Control: no-cache");

la requete ne se lancait que lors du premier lancement du script js. sous IE.

m'enfin ca a l'air de fonctionner . Tu as du en dépatouiller plus d'un.

MERKI enkore une fois.

Bonne continuation

Julien
Répondre à elmoute49

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
nunjee, le mardi 10 juillet 2007 à 10:50:06
Je confirme, avec header no-cache ça fonctionne
Répondre à nunjee

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alexis, le jeudi 19 juillet 2007 à 19:42:37
Et chez moi ça marche pas :( Pas de rafraichissement après la première donnée envoyée :/
Répondre à Alexis

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alexis, le jeudi 19 juillet 2007 à 20:05:39
Mais j'ai trouvé pourquoi... j'avais inversé 2 lignes dans le code javascript.
Celles-ci:
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;

(j'avais mis la 2 avant la 1)
Deux jours à chercher sur ce problème !
Répondre à Alexis

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zefoots, le jeudi 9 août 2007 à 23:54:54
Salut,

pour ceux que ça intéresse, même problème avec Opera ... et même solution que celle utilisée pour IE
Répondre à zefoots

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mecton4.0, le jeudi 23 août 2007 à 09:23:41
en gros bourrin ayant eut le meme probleme , j'avais rajouté un random en GET


merci pour cette solution :)
Répondre à mecton4.0

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
naoh, le lundi 24 septembre 2007 à 01:42:06
J'ai été confronté au meme problème pour la création dun gadget vista.
Si vous n'êtes pas maître de la page php appelée, il faut faire varier la requête par exemple en mettent une fausse variable à faire vairer à chaque appel :

counter++;
http.open("GET", "test.php?counter="+counter, true);

C'est pas forcément très propre, mais je n'ai pas trouvé d'autre solution pour "passer outre le cache de IE.
Répondre à naoh

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rpayet37, le jeudi 18 octobre 2007 à 11:00:43
Bonjour,

Oui j'ai eu le même problème à savoir: impossible d'effectuer 2 fois de suite une requête (même POST) asynchrone, seule la 1ère marche.
En effet la solution est bien d'affecter la propriété onreadystatechange de l'objet HTTPRequest APRES CHAQUE appel à
sa méthode open(), et avant chaque appel à sa méthode send().
Répondre à rpayet37

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lali, le mardi 30 octobre 2007 à 14:55:05
Bonjour,

j'ai le meme probleme ,

j'ai essayé tout essayé, ca marche des fois et des fois ca ne marche pas !

sous FF ca marche parfaitement

quelqu'un a trouvé une solution efficace et ferme ?

merci pour votre aide
Répondre à lali

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Algaris, le mardi 4 décembre 2007 à 15:45:58
Bonjour, j'ai aussi le même problème...
J'ai suivi tous les conseil que j'ai lu ici et encore une fois, sous FF tout va bien alors que sous IE, seule la premiere requete passe...

Quelqu'un a une solution ?
Merci d'avance :)
Répondre à Algaris

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
WM Ondarun, le samedi 12 janvier 2008 à 20:54:14
L'idée de mettre une variable get ou post différent grace a un compteur n'est pas bete XD

Mais perso, je vous conseil largement la ptit ligne magique !!

header("Cache-Control: no-cache");

Mettez ca au début de vos page appelée, et vous verez IE7 ne garde plus la première ouverture en CACHE XD
Répondre à WM Ondarun

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
loulia, le mardi 5 février 2008 à 00:37:04
mon interenet explorer ne marche pas ? je voudré savoir pourkoi et qsq il fau faire
merci
Répondre à loulia

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 anaelle21, le jeudi 17 avril 2008 à 17:26:01
Merci pour la petite ligne magique, elle a bien fonctionné pour moi.
Répondre à anaelle21
Logiciels pertinents trouvés dans les téléchargements
Télécharger Power IE6  3.00Power IE6 - Power IE 6 est compatible avec Internet Explorer 7, c'est un logiciel d'origine canadienne, qui vous permet en quelques...Catégorie: Anonymat/Confidentialité
Licence: Freeware/gratuit
Télécharger IETester  0.2.2IETester - Si vous êtes intégrateur web ou simple concepteur web, un grand soucis que vous devez surmonter es la compatibilité de votre...Catégorie: Web
Licence: Freeware/gratuit
Télécharger Pack de compatibilité Microsoft Office 2007 3Pack de compatibilité Microsoft Office 2007 - En installant le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003, vous pouvez ouvrir, modifier et...Catégorie: Bureautique
Licence: Freeware/gratuit
Télécharger IETab 1.5.20080618IETab - IE Tab est une extension pour Mozilla Firefox , et uniquement pour les systèmes d'exploitation Windows. Elle permet à une...Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [AJAX] Problème de compatibilité IE »