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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  petit probleme Ajax avec IE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit probleme Ajax avec IE

n°1795001
Astroboy34
Posté le 02-10-2008 à 21:56:11  profilanswer
 

Bonjour à tous,
 
J'utilise un petit bout de code qui me permet de faire de l'ajax, voici la fonction en question :  
 

Code :
  1. function file(fichier){
  2.     var debug=false;
  3.     var conn = false;
  4.     var xhr_object = false;
  5.     try {
  6.         conn = new XMLHttpRequest();       
  7.     }
  8.     catch (error) {
  9.         if (debug) { alert('Erreur lors de la tentative de création de l'objet nnew XMLHttpRequest()nn' + error); }
  10.         try {
  11.             conn = new ActiveXObject("Microsoft.XMLHTTP" );
  12.         }
  13.         catch (error) {
  14.             if (debug) { alert('Erreur lors de la tentative de création de l'objet nnew ActiveXObject("Microsoft.XMLHTTP" )nn' + error); }
  15.             try {
  16.                 conn = new ActiveXObject("Msxml2.XMLHTTP" );
  17.             }
  18.             catch (error) {
  19.                 if (debug) { alert('Erreur lors de la tentative de création de l'objet nnew ActiveXObject("Msxml2.XMLHTTP" )nn' + error); }
  20.                 conn = false;
  21.             }
  22.         }
  23.     }
  24.     xhr_object=conn;
  25.     xhr_object.open("GET", fichier, false);
  26.     xhr_object.send(null);
  27.     if(xhr_object.readyState == 4) return(xhr_object.responseText);
  28.     else {return(false)};
  29. }


C'est très basique je sais, mais ca a l'avantage d'etre également très léger et de faire ce que je lui demande... enfin presque.
 
j'ai un petit problème avec IE, et seulement avec IE : si je laisse les paramètres de sécurité d'origine, la requete ne se fait pas au serveur.  
Ou pas tout à fait plutot. J'utilise des appels Ajax réguliers via setInterval(); le premier appel se fait bien, mais les suivants pas, comme si IE s'adressait à son cache plutot que de requetter le serveur à nouveau.
 
J'ai ajouté sur le fichier appelé (en php) ceci :

Code :
  1. header("Cache-Control: no-cache, must-revalidate" );


mais ca n'y a rien fait.
 
En baissant les paramètres de sécurité, ca fonctionne correctement. Sur FF et Chrome, ca fonctionne également tout le temps correctement.
 
Si vous avez connaissance de ce problème ou une petite idée, je serai preneur.
 
En vous remerciant  :D


Message édité par Astroboy34 le 02-10-2008 à 22:02:36
mood
Publicité
Posté le 02-10-2008 à 21:56:11  profilanswer
 

n°1795212
olivthill
Posté le 03-10-2008 à 13:58:05  profilanswer
 

Essayer avec :

header("Cache-Control: no-cache, must-revalidate" );
 // Date dans le passé
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );

n°1795213
Astroboy34
Posté le 03-10-2008 à 14:00:58  profilanswer
 

olivthill a écrit :

Essayer avec :


yes merci mais j'avais également essayé  :(


Message édité par Astroboy34 le 03-10-2008 à 14:01:32
n°1795381
tpierron
Posté le 03-10-2008 à 16:47:30  profilanswer
 

Oué, tu envoies ta requète en mode synchrone. Très très casse couille, car ça gèle complètement le navigateur. Passe en mode asynchrone histoire de voir si ça fonctionne mieux ....

n°1795403
Astroboy34
Posté le 03-10-2008 à 17:07:58  profilanswer
 

tpierron a écrit :

Oué, tu envoies ta requète en mode synchrone. Très très casse couille, car ça gèle complètement le navigateur. Passe en mode asynchrone histoire de voir si ça fonctionne mieux ....


C'est pas trop le topic du subject :D mais je l'ai passé en asynchrone


Message édité par Astroboy34 le 03-10-2008 à 17:52:10
n°1795619
gatsu35
Blablaté par Harko
Posté le 04-10-2008 à 12:59:23  profilanswer
 

il faut rajouter un paramètre bidon à l'url pour forcer le retéléchargement de la requête ajax.
 

Code :
  1. file('monfichier.php' + '?nocache=' + Math.random);

n°1795624
bul3
Posté le 04-10-2008 à 13:35:25  profilanswer
 

GatSu ++   ( je fais plutôt +"?"+new Date()   ;-))
sinon IE reprend dans le cache.
 
et si c'est en synchrone  
if(xhr_object.readyState == 4) return(xhr_object.responseText);
le test du readyState est inutile  
 
@+


Message édité par bul3 le 04-10-2008 à 13:37:18

---------------
[mon site] [m'écrire]
n°1795626
gatsu35
Blablaté par Harko
Posté le 04-10-2008 à 13:43:52  profilanswer
 

heu un Math.random suffit largement hein :o
mais sinon si tu utilise un new Date() je te conseille fortement de faire un new Date().getTime()


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

  petit probleme Ajax avec IE

 

Sujets relatifs
Problème couleur de fond (mais vraiment de fond) d'un JTabbedPane[Résolu] - [Batch Dos] probleme commande for /F
[API WIN32] Problème avec les polices [RESOLU][Java] border d'un JPanel : problème d'affichage
probleme verification formulaire[C] Probleme avec un Pipe
Array crée a partir d'une bdd (probléme)...Ajax - File d'attente / queue d'actions
Problème De HTML et CSS[Résolu] Problème avec une boucle
Plus de sujets relatifs à : petit probleme Ajax avec IE


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