JavaScript Ajax XMLHttpRequest
2012.05.19
この記事は最終更新日から1年以上が経過しています。
AjaxはJesseJamesGarrettが発表した用語で、「Asynchronous JavaScript + XML」(非同期的なJavaScript + XML)の略ですが、Ajax とはそもそもなんなのか。
ってところですよね。
一般的に使われているAjaxという言葉はあいまいですが「JavaScriptでサーバーからデータを取り出して活用するページ」がAjaxを使ってページと呼ばれています。
また、Garrettによる定義で「XMLHttpRequestを使った非同期的なデータの取り出し」とあり、XMLHttpRequestでXMLデータを取り出すテクニックが狭い意味でのAjaxと見なされるようです。
XMLHttpRequestオブジェクトの作成
XMLHttpRequestオブジェクトはその名のとおりXMLデータをHTTPプロトコルを使って要求するオブジェクトです。
HTTPプロトコルとはブラウザーがサーバーからファイルを受け取るのに使用されてる通信手段で、XMLHttpRequestオブジェクトを使うと、スクリプトの一部がブラウザーになったかのように、サーバーとやり取りが行えます。
では作成方法を
Mozilla, Opera, Safari,IE 7〜
obj = new XMLHttpRequest();
IE6
obj = new ActiveXObject("Msxml2.XMLHTTP");
IE 5,5.5
obj = new ActiveXObject("Microsoft.XMLHTTP");
で作成出来ます。
このオブジェクトの由来は、2000年にマイクロソフト社がWindowsに導入した「MSXML」の機能です。
Microsoft.XMLHTTPはMSXMLバージョン2の機能でMsxml2.XMLHTTPはMSXMLバージョン3の機能を使っています。
その後、MozillaはXMLHTTPと同様の機能を持つXMLHttpRequestオブジェクトを搭載し、OperaとSafariもMozillaの後追いをする形で同様のオブジェクトに対応しています。
IE7からもこれに対応し、obj = new XMLHttpRequest();でXMLHttpRequestオブジェクトを作成することができます。
ではクロスブラウザを考慮したXMLHttpオブジェクトの作成方法を
JavaScript
function createXMLHttp() { var obj = null; try{ //Safari,Mozilla, Opera, IE 7〜 obj = new XMLHttpRequest();</div> } catch(e) { try { //IE6 obj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { //IE 5,5.5 obj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){} } } return obj; }