当检查特定浏览器是否支持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(标准)之间做出决定时,我也处于同样的境地。感谢您的时间。任何建议都将不胜感激。
答案 0 :(得分:1)
怎么样 xhr = new XMLHttpRequest()||新的ActiveXObject(“Microsoft.XMLHTTP”);
如果XMLHttpRequest失败,则首选XMLHttpRequest,它使用ActiveXObject(“Microsoft.XMLHTTP”)。 更加优雅和干燥。