Javascript xmlHttpRequest 对象检测与 try..catch

标签 javascript ajax xmlhttprequest try-catch object-detection

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

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

然而,每当我查看由更高级的开发人员编写的代码时,我更有可能看到一个 try-catch block :

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

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

最佳答案

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

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

关于Javascript xmlHttpRequest 对象检测与 try..catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476456/

相关文章:

javascript - 如何用字形替换数据切换文本? (使用 Rails 和 JS)

javascript - 从多个 url 获取模型时如何渲染 View

javascript - 需要将 ajax 响应存储到全局变量

ruby-on-rails - Angular $http.get 无法从 Rails 获取 json respond_to (无需调整 header )?

javascript - 使用 Jquery 获取动态事件中的文本

javascript - meteor 发布复合和嵌套集合

javascript - 如何在 JavaScript 中将文本框值处理为变量

javascript - ASP.NET:如何使 onClientClick 在回发之前完成工作?

php - 在 phalcon 框架中的 xmlhttprequest 情况下如何禁用渲染布局?

javascript - 处理 REST API 的长响应时间