AJAX XMLHttpRequest

XMLHttpRequestオブジェクトはAJAXの可能性を生み出しました。

XMLHttpRequest

XMLHttpRequestオブジェクトはAJAXの鍵です。

このオブジェクトは、Internet Explorer 5.5と2000年7月のリリース以降利用可能でしたが、2005年にAJAXとWeb 2.0についての議論が始まる前に、このオブジェクトは十分に認識されていませんでした。

XMLHttpRequestオブジェクトの作成

異なるブラウザでは異なる方法で XMLHttpRequest オブジェクトを使用しています。

Internet Explorerでは、 ActiveXObject

他のブラウザでは、 XMLHttpRequest のJavaScript内蔵オブジェクト

この問題を克服するために、以下の簡単なコードを使用できます:

var XMLHttp=null
if (window.XMLHttpRequest)
  {
  XMLHttp=new XMLHttpRequest()
  }
else if (window.ActiveXObject)
  {
  XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }

コード説明:

  1. まず、XMLHttpRequestオブジェクトとして使用するために作成します XMLHttp 変数。その値を null に設定します。
  2. 次にテストします window.XMLHttpRequest オブジェクトが利用可能かどうかを確認します。新しいバージョンのFirefox、Mozilla、OperaおよびSafariブラウザでは、このオブジェクトは利用可能です。
  3. 利用可能であれば、それを使って新しいオブジェクトを作成します:XMLHttp=new XMLHttpRequest()
  4. 利用不可能であれば、それを検出します window.ActiveXObject 利用可能かどうかを確認します。Internet Explorer version 5.5およびそれ以降のバージョンでは、このオブジェクトは利用可能です。
  5. 利用可能であれば、それを使って新しいオブジェクトを作成します:XMLHttp=new ActiveXObject()

改良された例

一部のプログラマーは最新かつ最速のバージョンのXMLHttpRequestオブジェクトを使用することが好きです。

以下の例では、マイクロソフトの最新バージョンの「Msxml2.XMLHTTP」をロードしようと試みています。Internet Explorer 6で利用可能であり、ロードできない場合は「Microsoft.XMLHTTP」に戻ります。これはInternet Explorer 5.5およびその後のバージョンで利用可能です。

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

コード説明:

  1. まず、XMLHttpRequest オブジェクトとして使用する XMLHttp 変数。その値を null に設定します。
  2. ウェブ標準に基づいてオブジェクトを作成します(Mozilla、Opera、Safari):XMLHttp=new XMLHttpRequest()
  3. マイクロソフトの方法でオブジェクトを作成し、Internet Explorer 6 以降のバージョンで使用可能:XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
  4. エラーをキャッチすると、より古い方法(Internet Explorer 5.5)を試みます:XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

XMLHttpRequest オブジェクトに関するさらに詳しい情報

XMLHttpRequest に関するさらに詳しい情報を希望される場合は、以下のサイトを訪れてください AJAX 教程