2011-06-25 14 views
3

特定のブラウザは、AJAXをサポートしているかどうかチェックし、オブジェクト検出は、私は通常、何をすべきかです、私はこれはかなり好みの問題だけであるがあれば、一部の人々はのtry..catchが遅くなると言うことを知っているJavascriptのXMLHttpRequestオブジェクト検出は

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

を:より多くの先輩、私が代わりにtry-catchブロックを見ることになる可能性が高いですこれを行うための "標準的な"方法がありますか?私は長い間、私がinnerHTML(標準ではない)とDOM(標準)のどちらかを決めていたときと同じ状況になっていました。あなたの時間をありがとう。どんな提案もありがとうございます。

答えて

1

約 xhr = new XMLHttpRequest()||新しいActiveXObject( "Microsoft.XMLHTTP");

XMLHttpRequestは、失敗した場合はActiveXObject( "Microsoft.XMLHTTP")を使用することをお勧めします。 はるかにエレガントで乾燥しています。

+0

ええ、 "エレガントな"というのは "標準"という意味ではなく、DOMトラバーサルより "速い" innerHtml操作と同じことですが、 "標準的な"方法とは考えられません。 –

+0

これはもっと標準です。これは、jQueryの動作と似ています。そしてそれは最も安全です。 'function createStandardXHR(){ \t { \t \t return新しいウィンドウ.XMLHttpRequest(); \t}キャッチ(E){}} 関数createActiveXHR(){ \t試み{ \t \tリターン新しいwindow.ActiveXObject( "Microsoft.XMLHTTP")。 \t} catch(e){} } xhr = window.ActiveXObject? \t function(){ \t \t return createStandardXHR()|| createActiveXHR(); \t}: \t createStandardXHR; ' –

関連する問題