Newsgroup: it.comp.lang.javascript
Titolo: Ajax e MSIE 7

se 5:
ActiveXObject("Microsoft.XMLHTTP")
se 6:
ActiveXObject("Msxml2.XMLHTTP")
se 7:
?????????????
-- 
http://midiquiz.altervista.org
http://interno.altervista.org


http://csvtosql.sf.net
[Acqua] Per mi l'acqua se l'e' bona l'e' doma' per lava' i piatt --
Porta, "Brindes de Meneghin all'ostaria"

Sul 7 hanno introdotto l'oggetto nativamente nel browser
quindi fai:
new XMLHttpRequest();
e va..
CIAO
nonce999 ha scritto:


 ?????????????
Non vero.
Come per JScript: la versione delle api xml e' completamente 
indipendente dal browser e dalla versione di windows (anche se 
ovviamente, per esempio stupido, non avremo ie7 su win98).
Comunque non dovrebbe neanche esistere il problema: se sei in intranet 
sai cosa aspettarti e un poco puoi richiedere, se sei su internet 
xmlhttp dovrebbe essere solo una comodita' e non un qualcosa di necessario.
Eventualmente, per tirare le somme, con un poco di compilazione 
condizionale e/o "try & catch" esci dal tuo problema e se ne e' parlato 
in molti thread precedenti.
In pratica, insisto, il problema proprio non dovrebbe sussistere.

 
3 risposte diverse:
- probabilmente sarà ancora diverso
- new XMLHttpRequest();
- il problema proprio non dovrebbe sussistere
non conoscete un link valido che dia una risposta inequivocabile?



Se veramente ti serve quell'informazione perche' non apri google?
cerca
IE7  XMLHttpRequest
mi sa tanto che trovi la risposta. 

 wrote in 
news:4493c771$0$982$
5fc...@news.tiscali.it
:

ok, grazie, non ci riuscivo prima:
http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx


 non conoscete un link valido che dia una risposta inequivocabile?
Be' guarda che quello che ti dicevo lo devi tenere presente: la versione 
delle api xml e' indipendente dalla versione del browser e la prima 
stringa che hai riportato "Microsoft.XMLHTTP" si riferisce a librerie 
piuttosto vecchie che potrebbero non essere esenti da bug.
E a seconda di cosa e' installato su ie5 potresti tranquillamente usare 
"Msxml2.XMLHTTP".
Su ie7 sara' implementato "nativamente" e quindi si potra' fare "new 
XMLHttpRequest()".
Il nativamente e' fra virgolette perche' potrebbe essere un banale 
wrapper all'oggetto activex: se non sbaglio se ne e' parlato in un 
thread precedente di Zer0.

 thread precedente di Zer0.
...il quale Zer0, dimenticavo, ha pubblicato sempre qui sul newsgroup 
una funzione crossbrowser per ottenere un riferimento all'oggetto in 
questione che e' ben piu' completa dello scheletro che viene proposto su 
  IEBlog.

   IEBlog.
ti ritrovi questa routine che non riesco a trovare il post?
ty.


   IEBlog.
A dire il vero l'ultima release si avvicina molto a quella
per renderlo piu' cross-browser ha eliminato il try & catch
e ci dovrebbe essere solo una compilazione condizionale e un controlla del
SO
function getXmlHttpRequest()
{
   if (window.XMLHttpRequest){
      return new XMLHttpRequest();
   }if (window.ActiveXObject) {
     /*@cc_on
       @if (@_win32)
          return new ActiveXObject("Microsoft.XMLHTTP");
       @end
     @*/
   return null;
   }
   return null;
} 

 A dire il vero l'ultima release si avvicina molto a quella
Cioé a questa, quella che hai pubblicato tu è quella che scrissi io...
Oppure sul blog della Microsoft hanno rifatto esattamente la stessa
funzione, a mesi di distanza? :)
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 funzione, a mesi di distanza? :)
no, o cmq non lo so'...
Mi devo essere spiegato male:
intendevo dire che l'ultima versione che hai postato non e' poi cosi'
diversa da quella di IEBlog.
a differenza dell'inizi (nel 2004) dove suggerivi controlli try.catch,
versione piu' corretta dell'ActiveX su IE, readyState nelle versioni di
Mozilla...
Se non dico cavolate ora c'e' solo un controllo per WIN32, per il problema
noto dei IE per Mac...
Forse la funzione potrebbe diventare cosi':
function getXmlHttpRequest( )
{
   var xmlhttp = null;
   if( typeof window.XMLHttpRequest != "undefined" )
   {
      xmlhttp = new XMLHttpRequest( );
   }
   else if( typeof window.ActiveXObject != "undefined" )
   {
      /*@cc_on
      @if( @_win32 )
      {
         xmlhttp = new ActiveXObject( "Msxml2.XMLHTTP" ) ||
            new ActiveXObject( "Microsoft.XMLHTTP" );
      }
      @end
      @*/
   }
   return xmlhttp;
}
cosa ne dici?

 cosa ne dici?
Come ho già detto in un altro post, non vedo perché dover aumentare la
complessità del codice quando non ve ne è necessità ("pluralitas non est
ponenda sine necessitate").
Ripeto : non ho ancora trovato personalmente casistiche in cui debba
discriminare realmente il prefisso per la creazione di un oggetto XMLHTTP su
IE; inoltre se si volesse fare qualcosa del genere non basterebbe certo
discriminare quei due. Ce ne sono altri, di cui tener conto.
La getXmlHttpRequest() è di natura leggera e semplice, così la voglio
mantenere fintanto che non vengono fuori casistiche reali e significative in
cui sopraggiungono problemi.
Del resto, come ho appena detto, se si volesse tener conto di tutto ci
sarebbero ben altre cose da inserire. Ma allo stato attuale, il gioco non
vale la candela, considerando il rapporto codice/funzionalità.


 ponenda sine necessitate").
Per altro l'hai detto a me :(
Sembra che io non capisca niente :'(
pero' sono stato "ristimolato" leggendo
news:4494018f$0$16936$
4faf...@reader4.news.tin.it

 news:4494018f$0$16936$
4faf...@reader4.news.tin.it
Beh, però non sei stato "ristimolato" abbastanza. :)
Tu hai avuto esperienze dirette in cui l'istanza di Microsoft.XMLHTTP
falliva, o non eseguiva i compiti che ti interessavano?
Personalmente, non ho mai avuto problemi di questo tipo. Almeno non con
XMLHTTP... Li ho avuti con XMLDOM delle api xml di Microsoft. Ma non con
XMLHTTP.
Quindi, dato l'istanza viene ugualmente creata, dato che in un caso viene
usata proprio quella (senza alcuna modifica nel codice seguente), la
utilizzo in quanto minimo comun denominatore.
