Newsgroup: it.comp.lang.javascript
Titolo: FF e Ajax sincrono ...

Ciao a tutti,
ma FF non supporta di utilizzare XMLHttpRequest in modalità sincrona ?!? io 
uso un noto script trovato in rete che posto sotto, ma se in 
page_request.open('GET', url, false) metto false non funziona.
E cosa più assurda, almeno per me, funzio ma solo se ho attivato FireBug 
????
Chi mi aiuta :-(
    Saluti
          Bruce
   /***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library 
(
www.dynamicdrive.com
)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at 
http://www.dynamicdrive.com/
 for full source code
***********************************************/
var loadedobjects="";
var rootdomain="http://"+window.location.hostname;
function ajaxpage(url, containerid, asinc){
 var page_request = false
 if (window.XMLHttpRequest) // if Mozilla, Safari etc
  page_request = new XMLHttpRequest()
 else if (window.ActiveXObject){ // if IE
  try {
   page_request = new ActiveXObject("Msxml2.XMLHTTP")
  }
  catch (e){
   try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
   }
   catch (e){
    location.href = "indexNoAjax.asp";
    }
   }
  }
 else
 location.href = "indexNoAjax.asp"
 page_request.onreadystatechange=function(){
  loadpage(page_request, containerid)
 }
 page_request.open('GET', url, asinc)
 page_request.send(null)
}
function loadpage(page_request, containerid,url){
 if (page_request.readyState == 4 && (page_request.status==200 || 
window.location.href.indexOf("http")==-1))
 {
  document.getElementById(containerid).innerHTML=page_request.responseText;
  theDiv=document.getElementById(containerid);
  theScripts=theDiv.getElementsByTagName("script");
  for (i=0;i<theScripts.length;i++){
   url=(theScripts[i].getAttribute("src"));
   var scriptToLoad = document.createElement("script");
   scriptToLoad.src = url;
   scriptToLoad.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(scriptToLoad);
   theDiv.removeChild(theScripts[i]);
  }
  caricata = 1;
 }
}

 ????
hai già avuto problemi di FF se non ricordo, rimuovi e reinstalla tutto.
p.s. non scatena l'onreadystatechange, ovviamente ...
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

Ciao e grazie mille per la tua risposta.
Il problema l'ho risconmtrato su diversi computer, qui ho fatto un esempio 
del mio problema:
http://bruceocanaan.altervista.org/ajax/index.html
se si va nel sito in modalità asincrona funziona perfettamente, mentre in 
quello sincrona no.
Quello in modalità sincrona non funziona solo su FF son disabilitato 
FireBug, perché se lo abilito invece funziona :-)
riesci mica ad aiutarmi ?
Bruce


 del mio problema:
[CUT]
Ma ti ho già spiegato il perché ... firefox non scatena onreadystatechange
se la chiamata è sincrona (anche perché non ha molto senso)
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 E cosa più assurda, almeno per me, funzio ma solo se ho attivato FireBug 
  scusate l'ignoranza... ma che differenza c'è tra sincrono e asincrono? 
a di ajax non sta per asincrono?

 di ajax non sta per asincrono?
Da quel che ho visto e penso di aver capito, ma so già che mi smentiranno, 
nella chiamata sincrona l'esecuizione dello script si dovrebbe fermare.
Ho una pagina con due div sovvrapposti che mando in fade uno pre volta. Se 
faccio un'interrogazione asincrona e poi faccio il fade, questo inizia anche 
se la seconda pagina non è caricata e l'effetto è brutto. Invece, con la 
richiesta sincrona in fade parte solo quando l'altra pagina è stata 
caricata.
Almeno, su IE7, safari e FF con firebug è così :-)
Ciao
          Bruce 

 se la chiamata è sincrona (anche perché non ha molto senso)
Hai ragione :-)
l'ho risolta così ...
 if (asinc == true){
  page_request.onreadystatechange=function(){
  loadpage(page_request, containerid, url);
  }
 }
 page_request.open('GET', url, asinc);
 page_request.send(null);
 if (asinc == false){
  loadpage(page_request, containerid, url);
 }
dove asinc è una variabile in cui si imposta se si vuole sincrono o 
asincrono e page_request è XMLHTTPRequest ...
Funzionare funziona ... può andare ?
Ciao e grazie mille
         Bruce 

 a di ajax non sta per asincrono?
Si`, infatti lo si dovrebbe chiamare SJAX. Ma allora devi chiamarlo AJAJ 
quando usi JSON, AHAJ quando usi un iframe invece di xmlHttpRequest, AHAH 
quando il server ti torna HTML invece di JSON, AHAX quando ti torna XML, 
etc. etc
AJAX ha perso il suo significato originale di acronimo, ed e` diventato 
sinonimo di "sito che non ricarica tutta la pagina, ma solo uno o piu` 
pezzi quando servono, possibilmente con effetti grafici e drag-n-drop".
Bye.

 pezzi quando servono, possibilmente con effetti grafici e drag-n-drop".
La cosa buffa (oddio, ci sarebbe da piangere) è che per alcuni è
sinonimo SOLO dell'ultima cosa (effetti grafici / drag & drop) a
prescindere dal resto.
-- 
~ "Io rispetto molto la stupidità umana.
E' la sola cosa che mi dia un'idea dell'eternità."
(Voltaire)

 Ma lol. :) Mi sei partito dall'effetto, e non dalla causa. :)
E` perche` sono abituato a ragionare su cosa usare partendo dagli effetti 
che provoca. :)
E perche` avevo capito che era quello che chiedeva nintesa... :D
Bye.

 E perche` avevo capito che era quello che chiedeva nintesa... :D
Eheh.. è che mi è piaciuto come te ne sei uscito, tutto qui. :)
Un po' come se ti chiedessero a cosa serve un certo medicinale,
e tu gli elencassi solo gli effetti collaterali. :)
-- 
~ Se il destino è contro di noi, peggio per lui!

 Allora sei astemio? :-)
ROTFL. :D
O magari tutto il contrario: dipende a che livello di "effetti
provocati" si ferma. :)
-- 
~ "Solo i morti hanno visto la fine della guerra."
(Platone)

 Allora sei astemio? :-)
Praticamente si`.
Bevo alcolici, in media, una volta l'anno: a capodanno :)
Bye.

 prescindere dal resto.
fa tanto ridere il fatto che oggi persino i rollover li chiamano ajax.
usi dhtml? ma che vecchio che sei, ma non si usa piu'....
usi ajax? sei uno sviluppatore evoluto..
bah

 Funzionare funziona ... può andare ?
direi di sì ...
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.