Chiamata Ajax: Qual è la differenza tra new ActiveXObject(“Msxml2.XMLHTTP”) e new ActiveXObject(“Microsoft.XMLHTTP”)?

Spero sia l’oggetto invocazioni sono riferiti al ActiveXObject.
Ma perché stiamo passando due parametri diversi di lavorare in IE.
1. Msxml2.XMLHTTP e
2. Microsoft.XMLHTTP

Sono tutte e due uguali ? O Sono dipendente dal browser(IE7 e IE8) ?

Ho usato entrambi. Non ho avuto alcuna eccezione. Entrambi sono alla ricerca stessa cosa per me. Sto usando IE 8.

OriginaleL’autore User 1034 | 2010-10-22

2 Replies
  1. 6

    Entrambi sono in realtà obsoleta. Ci sono varie versioni di Microsoft venerabile MSXML oggetto ActiveX (credo l’ultima, in versione 5.0 ed è venuto con una qualche versione di Office.) Le versioni hanno delle piccole differenze nel comportamento, e correzioni di bug che di solito non entrano in gioco in AJAX scenari.

    Di partenza con IE7, supportati da Microsoft e standardizzata “XmlHttpRequest” oggetto che altri browser moderni hanno adottato. Vedere http://msdn.microsoft.com/en-us/library/ms537505(VS.85).aspx. Sicuramente, si dovrebbe utilizzare che come IE7 è ora la de-facto di un minimo comune denominatore. IE6 è stato dichiarato morto da maggior parte delle grandi organizzazioni, quindi non c’è alcun motivo per sostenere il vecchio specifici di Microsoft ActiveX Progid.

    E, naturalmente, c’è molto poco di ragione in questi giorni per arrotolare le chiamate AJAX, come librerie come jQuery e ASP.NET Ajax farlo per voi, astraendo via queste oscure browser standard. Vorrei vivamente di imparare una di queste librerie.

    Jordan Rieger

    OriginaleL’autore Jordan Rieger

  2. 1

    jquery (almeno 1.4.2) ha il problema di $.ajax() la chiamata. Si rende grande perdita di memoria (come fontana)
    tragedia codice:

    if ( window.ActiveXObject ) {
        jQuery.ajaxSettings.xhr = function() {
            if ( window.location.protocol !== "file:" ) {
                try {
                    return new window.XMLHttpRequest();
                } catch(xhrError) {}
            }
    
            try {
                return new window.ActiveXObject("Microsoft.XMLHTTP");
            } catch(activeError) {}
        };
    }

    risoluzione:

    if ( window.ActiveXObject ) {
        jQuery.ajaxSettings.xhr = function() {
            if ( window.location.protocol !== "file:" ) {
                if ( window.ActiveXObject ) {
                    try {
                        return new window.ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
                try {
                    return new window.XMLHttpRequest();
                } catch(xhrError) {}
            }
    
            try {
                return new window.ActiveXObject("Microsoft.XMLHTTP");
            } catch(activeError) {}
        };
    }
    La risoluzione non ha bisogno interiore ActiveXObject di controllo. Sarà sempre vero.
    questo è il modo per eseguire un controllo per ActiveXObject if('ActiveXObject' in window){return new ActiveXObject("Microsoft.XMLHTTP")}

    OriginaleL’autore Rocky

Lascia un commento