WebjxCom提示:XMLHttpRequest对象使AJAX成为可能
。 XMLHttpRequest对象使AJAX成为可能
。 XMLHttpRequest
XMLHttpRequest对象是AJAX的关键。
该对象在InternetExplorer5.5与2000年7月发布之后就已经可用了
,但是在2005人们开始讨论AJAX和Web2.0之前
,这个对象并没有得到充分的认识。
创建XMLHttpRequest对象
不同的浏览器使用不同的方法来创建XMLHttpRequest对象。
InternetExplorer使用ActiveXObject。
其他浏览器使用名为XMLHttpRequest的JavaScript内建对象。
要克服这个问题,可以使用这段简单的代码:
varXMLHttp=null
if(window.XMLHttpRequest)
{
XMLHttp=newXMLHttpRequest()
}
elseif(window.ActiveXObject)
{
XMLHttp=newActiveXObject("Microsoft.XMLHTTP")
}
代码解释:
首先创建一个作为XMLHttpRequest对象使用的XMLHttp变量。把它的值设置为null。
然后测试window.XMLHttpRequest对象是否可用。在新版本的Firefox,Mozilla,Opera以及Safari浏览器中,该对象是可用的。
如果可用,则用它创建一个新对象:XMLHttp=newXMLHttpRequest()
如果不可用,则检测window.ActiveXObject是否可用。在InternetExplorerversion5.5及更高的版本中,该对象是可用的。
如果可用,使用它来创建一个新对象:XMLHttp=newActiveXObject()
改进的例子
一些程序员喜欢使用最新最快的版本的XMLHttpRequest对象。
下面的例子试图加载微软最新版本的"Msxml2.XMLHTTP",在InternetExplorer6中可用,如果无法加载,则后退到"Microsoft.XMLHTTP",在InternetExplorer5.5及其后版本中可用。
functionGetXmlHttpObject()
{
varxmlHttp=null;
try
{
//Firefox,Opera8.0+,Safari
xmlHttp=newXMLHttpRequest();
}
catch(e)
{
//InternetExplorer
try
{
xmlHttp=newActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}
}
returnxmlHttp;
}
代码解释:
首先创建用作XMLHttpRequest对象的XMLHttp变量。把它的值设置为null。
按照web标准创建对象(Mozilla,Opera以及Safari):XMLHttp=newXMLHttpRequest()
按照微软的方式创建对象,在InternetExplorer6及更高的版本可用:XMLHttp=newActiveXObject("Msxml2.XMLHTTP")
如果捕获错误,则尝试更老的方法(InternetExplorer5.5):XMLHttp=newActiveXObject("Microsoft.XMLHTTP")
更多有关XMLHttpRequest对象的信息
如果您希望阅读更多有关XMLHttpRequest的内容,请访问我们的AJAX教程。