Newsgroup: it.comp.lang.javascript
Titolo: Ajax - Consigli (aggiornamento)

Queste sono le modifiche che ho apportato grazie ai consigli di ZERO.
Anche se mi attendo ancora *bastonate* ecco qui:
---------------------------------
function getXmlHttpRequest(){
 if (window.XMLHttpRequest){
  return new XMLHttpRequest();
 }if (window.ActiveXObject) {
  /*@cc_on
    @if (@_win32)
     return new ActiveXObject("Microsoft.XMLHTTP");
   @end
  @*/
  return null;
 }else{
  return null;
 }
}
function getContent( uri, nodeId, successCallback, errorCallback, 
extraParam, msgLoading) {
 var http = getXmlHttpRequest();
 var httpLoading = msgLoading||"<span 
class='httpLoading'>"+defaultLoadingAnimation()+"&nbsp;... Loading 
...</span>";
 if(http===null) {
  return(null);
 }
 if(nodeId) document.getElementById(nodeId).innerHTML = httpLoading;
 http.open("get", uri, true);
 http.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 
GMT" );
 http.onreadystatechange = function() {
  if(http.readyState === 4) {
   if(http.status && http.status== 200) {
    if(nodeId)   document.getElementById(nodeId).innerHTML = 
http.responseText;
    if(successCallback) successCallback(http.responseText,extraParam||null);
   } else {
    if(nodeId)   document.getElementById(nodeId).innerHTML = "Errore";
    if(errorCallback)  errorCallback(http.responseText,extraParam||null);
   }
  }
 }
 http.send(null);
}
function defaultLoadingAnimation() { return "<img src='loading.gif'/>"; }
-----------------------------
Ho mantenuto il nodeID anzichč node perche' mi viene molto piu' comodo 
passare l'ID solitamente, ma con queste variazioni di codice ora non lo 
utilizzo quasi piu' dando preferenza a successCallback ed errorCallback.
Ho modificato l'extraParam per poterlo passare come secondo parametro alle 
callback e ho aggiunto msgLoading per potere cambiare il messaggio di 
default.
Dai, non dirmi che sono ancora tanto lontano...
Ciao e ancora grazie
Max 

 Dai, non dirmi che sono ancora tanto lontano...
Devi solo eliminare il supporto di innerHTML cosi` come lo stai usando 
adesso (e` buona pratica evitare l'uso di markup inserito come stringa
nel codice JS, mi riferisco allo span e all'img, ad esempio)
E ricordati, ci sono dei casi in cui la proprieta` "status" solleva un
eccezione. Mi sembrava di avertene accennato, comunque puoi trovare la
documentazione in merito negli archivi di questo NG.
-- 
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."

Scusate l'intromissione
[OT]
ti ho mandato un'email all'indirizzo che "mostri" nel NG
l'hai ricevuta?

 documentazione in merito negli archivi di questo NG.
Ho letto di quelle eccezioni, si riferivano al fatto che a volte poteva 
succedere che anche se readystate era uguale a 4 lo status non fosse 
comunque impostato e pensavo che una soluzione potesse essere quella di 
avere sostituito la vecchia:
if(http.status== 200)
con
if(http.status && http.status== 200)
Ancora non ci siamo?
Grazie ancora davvero.
Max 

 l'hai ricevuta?
L'indirizzo e` valido, ma visto che mi arriva un godziliardo di SPAM lo
controllo una volta ogni tanto (a meno che non vi siano ragioni precise
per farlo).
Ho letto l'e-mail giusto ora, dopo aver letto questo tuo post. Dato che
sono in coma - appena tornato dal Belgio, Bruxelles, FOSDEM - spero che
mi perdonerai se ti rispondero` con piu` lucidita` domani. :)


 Grazie ancora davvero.
Di niente, il NG serve a questo.


 mi perdonerai se ti rispondero` con piu` lucidita` domani. :)
no, figurati, anzi spero in un sě :)
a quasi qualunque condizione ;)