2009-04-28 15 views
2

MSXML6 soll die beste Sicherheit, Leistung, Zuverlässigkeit und W3C-Konformität (Using the right version of MSXML in Internet Explorer) haben.jQuery und MSXML

Fragen:

  1. Warum jQuery nicht MSXML6 verwenden?
  2. Verwendet jQuery MSXML3? (Ich denke, die Antwort ist ja, siehe mein Update unten ...)
  3. Kann ich die Version von MSXML von einer IXMLDOMDocument Instanz abrufen? Wenn das so ist, wie?

Update:

ich einige der Forschung auf Deviant Antwort basiert gemacht haben:

jQuery schafft die IXMLHTTPRequest Objekt, das zuerst mit MSXML 2.0, wie dies veröffentlicht wurde:

new ActiveXObject("Microsoft.XMLHTTP");

Microsoft.XMLHTTP ist eine ProgID, die only implemented in MSXML3 for legacy support ist und nicht empfohlen. Wenn ich the reference richtig verstehe, hätte dies eine Version 2.x IXMLHTTPRequest Objekt erstellt, vor diesen Versionen war “kill-bitted”. Jetzt bin ich mir ziemlich sicher, dass diese ProgID ein MSXML 3.0 IXMLHTTPRequest Objekt erstellt. Dies könnte meine zweite Frage beantworten. Hier

ist Beispielcode, der zeigt, wie die beiden empfohlenen Versionen des IXMLHTTPRequest Objekt erstellen:

new ActiveXObject("MSXML2.XMLHTTP.3.0"); // MSXML 3.0 ProgID... 
new ActiveXObject("MSXML2.XMLHTTP.6.0"); // MSXML 6.0 ProgID... 

ich XSLT Leistung in MSXML3 vs MSXML6 getestet haben. MSXML6 verwendete weniger als 1/10 der Zeit, um die gleiche Transformation wie MSXML3 für eine ziemlich große XML-Datei durchzuführen!

Rerences:

  1. jQuery: The Write Less, Do More, JavaScript Library
  2. IXMLHTTPRequest
  3. MSXML API History
  4. GUID and ProgID Information
  5. Using the right version of MSXML in Internet Explorer
  6. MSXML 3.0 GUIDs and ProgIDs
  7. MSXML 6.0 GUIDs and ProgIDs
  8. Why Version-Independent GUIDs and ProgIDs Were Removed

Antwort

7

jQuery tut. Quelle:

// Create the request object; Microsoft failed to properly 
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available 
// This function can be overriden by calling jQuery.ajaxSetup 
xhr:function(){ 
    return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 
}, 

Aber es kann natürlich nicht verwenden MSXML in Firefox/Chrom/Safari/Oper usw. Also, wenn Sie MSXML verwenden in Ihrem HTML Ihrer Website versuchen wird, nur im IE funktionieren. Also empfehle ich dir das nicht zu tun.

jQuery verwendet nur MSXML als Sicherung, um die Fehler in der MS-Implementierung von XmlHttpRequest zu umgehen.

Ich würde nicht sagen, dass MSXML dem XMLHttpRequest-Standard am meisten entspricht. MSXML existierte lange bevor XMLHttpRequest dies tat, es ist ein seltsamer Vergleich. http://www.w3.org/TR/XMLHttpRequest/

jQuery wurde zur Unterstützung von XML- und XPath-Selektoren verwendet, ist jedoch veraltet. Es gibt Plugins für jQuery und XML http://plugins.jquery.com/search/node/xml+type:project_project

JSON wird normalerweise gegenüber XML bevorzugt. http://json.org

+0

IXMLHTTPRequest ist ein Teil von MSXML – knut

+0

@knut ihm seine Frage geändert, so meine Antwort ausgeschaltet ist –

+0

IXMLHTTPRequest ist eine Schnittstelle in dem Microsoft XML-Lib, die nichts mit dem Web-Browser-DOM-Objekt XMLHttpRequest zu tun hat, dass ich in meinem verknüpft Antworten. Ihre Frage ist ziemlich breit und vage. Was versuchst du zu erreichen? XML/XSLT vs jQuery/JSON? jQuery/JSON ist die offensichtliche Wahl. –