Detect Browser Compatibility with the Request Object (Page 1 of 4 )
HACK 1 Detect Browser Compatibility with the Request Object
Browser compatibility is an important consideration. You have to make sure the “engine” behind Ajax’s server handshake is properly constructed, but you can never predict which browsers your users will favor.
Microsoft.XMLHTTP and Msxml2.XMLHTTP refer to different versions of software components that are a part of Microsoft XML Core Services (MSXML). Here’s what our contributing IE expert says on this matter.
“If you useMicrosoft.XMLHTTP, theActiveXObjectwrapper will try to initialize the last known good version of the object that has this program (or “prog”) ID. This object, in theory, could be MSXML 1.0, but almost no one these days has that version because it has been updated via Windows Update, IE 6, or another means. MSXML 1.0 was very short-lived. If you useMSXML2.XMLHTTP, that signifies to the wrapper to use at least MSXML 2.0 libraries. Most developers do not need to use a specific version of MSXML, such asMSXML2.XMLHTTP.4.0orMSXML2.XMLHTTP.5.0.”
Although Microsoft and the engineers on the Mozilla project have chosen to implement this object differently, we will refer to theActiveXandXMLHttpRequestobjects simply as “request objects” throughout this book, because they have very similar functionality.
As a first step in using Ajax, you must check if the user’s browser supports either one of the Mozilla-based orActiveX-related request objects, and then properly initialize the object.