在检查特定浏览器是否支持 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/