3

特定のブラウザーが 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(標準)のどちらかを決定していたときも、ずっと前に同じ状況にありました。お時間をいただきありがとうございます。任意の提案をいただければ幸いです。

4

1 に答える 1

1

xhr = new XMLHttpRequest() || はどうですか? 新しい ActiveXObject("Microsoft.XMLHTTP");

失敗した場合は XMLHttpRequest が優先され、ActiveXObject("Microsoft.XMLHTTP") が使用されます。よりエレガントでドライ。

于 2011-06-25T08:39:52.780 に答える