Problème de compatibilité script AJAX/IE

Problème de compatibilité script AJAX/IE - HTML/CSS - Programmation

Marsh Posté le 29-08-2006 à 18:34:49    

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.

Reply

Marsh Posté le 29-08-2006 à 18:34:49   

Reply

Marsh Posté le 30-08-2006 à 10:01:47    

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 ?

Reply

Marsh Posté le 30-08-2006 à 12:32:47    

Est-ce que vous constatez vous aussi que ça marche sous Firefox mais pas sous IE?
Merci.

Reply

Marsh Posté le 30-08-2006 à 13:17:28    

Oui, sous firefox ca fonctionne mais sous IE ca affiche en rouge objet AJAX indisponible.

Reply

Marsh Posté le 30-08-2006 à 13:27:04    

Est-ce que la façon de définir la méthode onreadystatechange vous semble correcte?
 

Citation :

// Classe des objets AJAX
function ajax_ajaxClass()
{
 
[...]
 
  // Traitement des requêtes
  var obj = this;
  this.onreadystatechangeFunc = function()
  {
     //alert('Traitement des requêtes : obj.xmlHttp.readyState='+obj.xmlHttp.readyState);
    if (obj.xmlHttp.readyState == 4)
    {
      // Requête OK
      if (obj.xmlHttp.status == 200) obj.completeOkFunc();
      // Requête KO
      else obj.completeErrorFunc();
 
      obj.ready = true;
    }
  }
 
[...]
 
  // Lancement et traitement d'une requête
  this.request = function (url, method, asynchrone)
  {
    // Objet AJAX en cours d'utilisation
    if (!this.ready)
    {
      this.busyFunc();
    }
    // Objet AJAX disponible
    else
    {
      // Lancement de la requête
      this.xmlHttp.onreadystatechange = this.onreadystatechangeFunc;
      this.xmlHttp.open(method, url, asynchrone);
      this.xmlHttp.send(null);
      this.ready = false;
 
      // Lancement de la fonction d'attente
      this.waitingFunc();
    }
  }
 
[...]
 
}


 
Parce que sous IE, le premier appel à la méthode "request" fait bien passer dans la fonction "onreadystatechangeFunc" mais pas les appels suivants. T_T

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed