- Home
- Categorie
- Coding e Sistemistica
- Coding
- AJAX:IE e FIREFOX, ma perchè non vanno mai uguale?
- 
							
							
							
							
							AJAX:IE e FIREFOX, ma perchè non vanno mai uguale?Ciao a tutti, 
 la problematica di oggi (intesa come era geologica proprio) è il capire perchè ie e firefox devano sempre litigare.
 Ho uno script in ajax che richiama dati da una pagina php e fin qua tutto ok.
 I dati si vedono meravigliosamente bene in IE6, in IE7...vado a vedere con FF toccandomi gli zebedei e infatti ecco la martellata.
 Non si vede tutto.
 In pratica io faccio due chiamate a due pagine, ben suddivise in due div con nomi diversi, che richiamano due funzioni Javascript ben distinte che si appoggiano a 2 handlers diversi.
 I risultati delle due chiamate come dicevo si vedono in IE, mentre in FF solo quelli della seconda..
 Considerando che sono abbastanza novello in ajax c'è qualcosa che voi sapete e che io non so?
 thank's
 Criss
 
- 
							
							
							
							
							
Nella prima chiamata interroghi una pagina che non è del tuo dominio? 
 
- 
							
							
							
							
							No no, sono entrambe del dominio di riferimento. E' il db ad essere su di un altro server, ma dato che le interrogazioni singole danno il risultato cercato e le chiamate alle pagine php singolarmente funzionano meravigliosamente non capisco perchè IE si e FF no...mi viene da pensare qualcosa riguardo l'interpretazione diversa del javascript...ma non so cosa... 
 
- 
							
							
							
							
							
hai utilizzato gli indirizzi assoluti? http://www.dominio.ext/scrip.php o solo /script.php a me con FF dava problemi in questo senso. 
 
- 
							
							
							
							
							Ciao, ho provato con gli indirizzi assoluti ma nulla da fare. 
 Qualcuno ha qualche altra idea?
 tra l'altro con IE appena apro la pagina qualche volta (non sempre) si comporta come firefox e cioè visualizza solo la seconda chiamata..ma non appena faccio il refresh tutto si sistema. Con FF manco a martellate.
 
- 
							
							
							
							
							
immagino le chiamate vengano fatte con window.onload o qualcosa di simile. io rincontrollerei la prima chiamata se usa una funzione diversa, o eventualmente controllerei che non vada in timeout la chiamata... e quindi non restituisca nulla ( ovvio se non hai preventivato un output in caso di errore/timeout ) 
 
- 
							
							
							
							
							Ciao, nulla di tutto questo...ho cmq sistemato finalmente. 
 Il problema era quello di suddividere handlers e chiamate in tutte le forme.
 il codice è: var myRequest = null; function CreateXmlHttpReq(handler) { 
 var xmlhttp = null;
 try {
 xmlhttp = new XMLHttpRequest();
 } catch(e) {
 try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch(e) {
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
 }
 xmlhttp.onreadystatechange = handler;
 return xmlhttp;
 }function myHandler() { 
 if (myRequest.readyState == 4 && myRequest.status == 200) {
 e = document.getElementById("uno");
 e.innerHTML = myRequest.responseText;
 }
 }function myHandler2() { 
 if (myRequest.readyState == 4 && myRequest.status == 200) {
 e = document.getElementById("due");
 e.innerHTML = myRequest2.responseText;
 }
 }function uno(){ 
 var e = document.getElementById("uno");
 myRequest = CreateXmlHttpReq(myHandler);
 myRequest.open("GET","pagina.php?id=1");
 myRequest.send(null);} function due(){ 
 var e = document.getElementById("due");
 myRequest2 = CreateXmlHttpReq(myHandler2);
 myRequest2.open("GET","pagina.php?id=2");
 myRequest2.send(null);}Nn è bello stilisticamente ma almeno funziona (a meno che non sia l'unico modo..). 
 
- 
							
							
							
							
							
prova a guardare advajax, è una classe javascript molto utile, almeno io mi ci trovo abbastanza bene ad usarla  
 
- 
							
							
							
							
							
ah tu usavi Microsoft.XMLHTTP anche per firefox allora... 
 Pensavo ci fossy il "Try"