3

在检查特定浏览器是否支持 AJAX 时,我通常会做对象检测:

if (window.XMLHttpRequest) 
{ 
    xhr = new XMLHttpRequest();
} 
else if (window.ActiveXObject)
{
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

但是,每当我查看更资深的开发人员编写的代码时,我更有可能看到的是 try-catch 块:

try {
   xhr = new ActiveXObject("Microsoft.XMLHTTP");    //IE 
}
catch(e)    // if not IE
{
  xhr = new XMLHttpRequest(); 
}

我知道有些人说 try..catch 比较慢,但是如果这几乎只是一个偏好问题,是否有一种约定/更“标准”的方式来做到这一点?很久以前,当我在innerHTML(非标准)与DOM(标准)之间做出决定时,我也处于同样的境地。感谢您的时间。任何建议将不胜感激。

4

1 回答 1

1

xhr = new XMLHttpRequest() 怎么样 || 新的 ActiveXObject("Microsoft.XMLHTTP");

如果失败,则首选 XMLHttpRequest,它使用 ActiveXObject("Microsoft.XMLHTTP")。更加优雅和干燥。

于 2011-06-25T08:39:52.780 回答