Sunava Dutta on the Internet Explorer team has written about their
support for a Native XMLHTTPRequest object in IE 7. He writes
I’m excited to mention that IE7 will support a scriptable native version of
XMLHTTP. This can be instantiated using the same syntax across different
browsers and decouples AJAX functionality from an ActiveX enabled environment.
What is XMLHTTP?
XMLHTTP was first introduced to the world as an ActiveX control in Internet
Explorer 5.0. Over time, this object has been implemented by other browsing
platforms, and is the cornerstone of “AJAX” web applications. The object allows
web pages to send and receive XML (or other data) via the HTTP protocol. XMLHTTP
makes it possible to create responsive web applications that do not require
redownloading the entire page to display new data. Popular examples of AJAX
applications include the Beta version of Windows Live Local, Microsoft Outlook Web
Access, and Google’s GMail.
Charting the changes: XMLHTTP in IE7 vs. IE6
In IE6 and below, XMLHTTP is implemented as an ActiveX object provided by MSXML.
In IE7, XMLHTTP is now also exposed as a native script object. Users and
organizations that choose to disable ActiveX controls can still use XMLHTTP
based web applications. (Note that an organization may use Group Policy or IE
Options to disable the new native XMLHTTP object if desired.) As part of our
continuing security improvements we now allow clients to configure and customize
a security policy of their choice and simultaneously retain functionality across
key AJAX scenarios.
IE7’s implementation of the XMLHTTP object is consistent with that of other
browsers, simplifying the task of cross-browser compatibility. Using just a bit
of script, it’s easy to build a function which works with any browser that
supports XMLHTTP:
if (window.XMLHttpRequest){
// If IE7, Mozilla, Safari, etc: Use native
object
var xmlHttp = new XMLHttpRequest()
}
else
{
if (window.ActiveXObject){
// ...otherwise, use the ActiveX control for IE5.x
and IE6
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
Note that IE7 will still support the legacy ActiveX implementation of XMLHTTP
alongside the new native object, so pages currently using the ActiveX control
will not require rewrites.
I wonder if anyone else sees the irony in Internet Explorer copying features from Firefox which were originally copied from IE?