При проверке того, поддерживает ли конкретный браузер 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 (стандартным). Спасибо за ваше время. Любое предложение будет оценено.