在检查特定浏览器是否支持 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(标准)之间做出决定时,我也处于同样的境地。感谢您的时间。任何建议将不胜感激。