Te lo dico io quale è la differenza tra AJAX e AhAh.Originariamente inviato da andrea.paiola
la differenza con AJAX (ma quante volte lo devo dire?) è che AHAH NON usa XML... con diversi vantaggi che non sto a ripetere...
ma perchè avete aperto una discussione nuova?
vabbè comunque potete provare la versione modificata da Daniele Florio (e anche un poco da me)![]()
http://www.gizax.it/vtre/tutorial.ph...re=3&lingua=IT
![]()
Tutto parte dalla creazione di un oggetto per richiesta web, che, naturalmente, è diverso a seconda del browser![]()
una volta creato l'oggetto req, si apre la connessione HTTP col metodo open mandando i giusti parametri![]()
Si manda pure il puntatore di una funzione di CallBack (ossia, onreadystatechange deve puntare ad una funzione dell'utente)
nella funzione di CallBack dell'utente, si recupera:
o objHTTP.responseText
oppure
objHTTP.responseXML
cioè, a seconda delle circostanze, mi faccio restituire, o un testo semplice, o un testo con tag html, o un testo xml
AhAh dice:
non uso xml, non uso testo semplice, ma uso solo testo con tag html
cioè non faccio mai per esempio, document.getElementById("textarea1").value = objHTTP.responseText;
ma utilizzo SEMPRE document.getElementById("xxxx").innerHTML = objHTTP.responseText
Ebbene, a volte questo non va bene. Se per esempio faccio una richista di tre informazioni, io le restituisco così:
"informazione1|informazione2|informazione3"
separo i tre campi e li metto nel posto giusto con, per esempio: elemeento.value = campo1***
nel caso di AhAh è facile farsi due funzioncine parametrizzate, ma anche senza AhAh è oltremodo facile farsi due funzioncine parametrizzate che accettano pure la funzione di ritorno![]()
=================
Per kluster
Mi piace la tua soluzione. Io ho tentato così:
acrocchio per IE (Con Firefox funziona anche senzacodice:if(req.status == 200) { output = req.responseText; document.getElementById(id_target).innerHTML = output; var j = document.createElement("div"); j.innerHTML = "_" + output + "_"; execJS(j); })
Per l'altro problema, le due funzioni ahah utilizzano l'oggetto richiesta http req in modo globale, perciò, se si fanno due richieste http in successione e la prima non ha avuto risposta, la seconda richiesta sovrascrive la prima, e si utilizzerà perciò solo l'ultima richiesta.
C'è modo di risolvere, naturalmente, ma questo alla prossima puntata![]()

)
Rispondi quotando