Newsgroup: it.comp.lang.javascript
Titolo: Firefox + FireBug + httpRequest multiple

Ho un problema molto fastidioso, sopprattutto perchè me ne sono
accorto solamente dopo aver quasi finito tutto il lavoro... in pratica
con l'extension ff Firebug funziona tutto senza alcun problema; se la
disattivo non funziona più niente.
Da notare che sotto ie (incredibilmente) non da' alcun problema, così
come sotto opera, konqueror etc.
Uso l'httpRequest per popolare i diversi box della pagina, finchè ne
carico uno solo va tutto bene, se ne carico più di uno non funziona
più niente.
Sicuramente farò qualche boiata in giro che non riesco a trovare...
Allego a seguire tutto il codice javascript relativo alle chiamate e
ringrazio in anticipo chiunque avrà la pazienza anche solo di leggere
questo post.
<body onload="loadCategorie('idp=0'); loadNews(); loadVetrina();">
var _destination_layer;
function loadCategorie(postData){
    loadUrl("include/categorie.aj.jsp", "box1", postData);
}
function loadNews(){
    loadUrl("include/news.aj.jsp", "box2", "");
}
function loadVetrina(postData){
    loadUrl("include/vetrina.aj.jsp", "box3", postData);
}
function loadUrl(url, targetId, postData){
    _destination_layer = targetId;
    if(postData=="") postData="fuzzy=1";
     httpRequest("POST", url, false, handleLoadActivityResponse,
postData);
}
function handleLoadActivityResponse(){
    if(request.readyState==4){
	if(request.status==200){
	    document.getElementById(_destination_layer).innerHTML =
request.responseText;
	} else {
	    document.getElementById(_destination_layer).innerHTML = "Si è
verificato un errore nel caricamento dei dati";
	}
    } else {
	document.getElementById(_destination_layer).innerHTML = "Caricamento
dati in corso...";
    }
}
//HTTP REQUEST
var request=null;
//costruzione dell'oggetto request
function httpRequest(reqType,url,asynch,respHandle){
    //alert('chiamata httpRequest\nreqType='+reqType+' url='+url+'
asynch='+asynch+' respHandle='+respHandle);
    //browser basati su Mozilla
    if(window.XMLHttpRequest){
	request=new XMLHttpRequest();
    } else if (window.ActiveXObject){
	request=new ActiveXObject("Msxml2.XMLHTTP");
	if (! request){
	    request=new ActiveXObject("Microsoft.XMLHTTP");
	}
    }
    //la variabile richiesta potrebbe essere ancora null nel caso
nessuna
    //inizializzazione ActiveXObject abbia avuto successo
    if (request){
	//se il parametro reqType è POST il quinto argomento della funzione
contiene i dati da inviare
	if(reqType.toLowerCase() != "post")  {
	    initReq(reqType,url,asynch,respHandle);
	} else {
	    var args = arguments[4];
	    if(args != null && args.length >0){
		initReq(reqType,url,asynch,respHandle,args);
	    }
	}
    } else {
	alert("Il browser utilizzato non permette di usare tutte le
funzionalità di questa applicazione");
    }
}
// inizializzazione di un oggetto request precedentemente istanziato
function initReq(reqType,url,bool,respHandle){
    //alert('chiamata initReq\nreqType='+reqType+' url='+url+'
bool='+bool+' respHandle='+respHandle);
    try {
	//specifica la funzione che gestirà la risposta HTTP
	request.onreadystatechange=respHandle;
	request.open(reqType,url,bool);
	//se reqType � POST allora il quinto argomento contiene i dati da
inviare
	if(reqType.toLowerCase() == "post")  {
	    //alert('argomenti passati'+arguments[4]);
	    request.setRequestHeader("Content-Type", "application/x-www-form-
urlencoded; charset=UTF-8")
	    request.send(arguments[4]);
	} else {
	    request.send(null);
	}
    } catch (errv) {
	alert("L'applicazione non è in grado di contattare il server.
\nRiprovare tra qualche istante.\n\nDettagli dell'errore:
"+errv.message);
    }
}

 disattivo non funziona più niente.
Secondo me con la tua architettura non puoi gestire piu' richieste
contemporanee, la seconda richiesta "annulla" la ricezione della
risposta alla prima, questo perche' il tuo oggetto xmlhttp e' globale,
dovresti utilizzarne uno locale ed usare una closure per la
onreadystatechange.
Bye,
 Gabry

 ha scritto nel messaggio 
news:1c7ff65a-1f7c-4c62...@j78g2000hsd.googlegroups.com...





var _destination_layer;


//HTTP REQUEST
var request=null;


//se reqType ? POST allora il quinto argomento contiene i dati da


 FireBug ... Pazzesco :-D
www.primestore.it
 : interamente sincrono (e funzionante perfettamente con
FF)
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.