TEDIA会員に登録したメールアドレスとパスワードを入力してください

メールアドレス:

     パスワード:


パスワードを忘れた方はパスワードの確認を行ってください。

TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます


>> テクノロジーポータル TEDIA トップページへ戻る <<

Think IT Software Developer's Think IT Find-IT 失敗しないソフト選び Find-IT TEDIA テクノロジーポータル TEDIA インストールマニアックス2008 インストールマニアックス2008

TEDIA SponsorsOpen Source Web Development Tutorials - Dev Shed

Active Client Pageの構築に必要なAjax機能
(2009/02/03公開)

Active Client Pageの構築に必要なAjax機能

 この記事は、Ajax手法によるActive Client Pageに関する4回連載記事の第2回です。今回は、ACPで使うために必要なAjax機能に関する解説に続き、Ajax手法の原理について紹介します。

XMLHttpRequestオブジェクト

 Web開発者は、XMLHttpRequestオブジェクトを使用して、ページがロードされた後で、サーバーからのデータを使ってそのページを更新できます。

 XMLHttpRequestオブジェクトは、Internet Explorer 5.0+、Safari 1.2、Mozilla 1.0/Firefox、Opera 8+、Netscape 7でサポートされています。

Ajaxブラウザ

 Ajaxの中核となるのはXMLHttpRequestオブジェクトです。各ブラウザは、それぞれ違う手法でXMLHttpRequestオブジェクトを作成します。Internet ExplorerがActiveXObjectを使うのに対して、ほかのブラウザはXMLHttpRequestと呼ばれる組み込みのJavaScriptオブジェクトを使用します。

 JavaScriptでのAjaxリクエストはすべて、XMLHttpRequestコンストラクタ関数の呼び出しで始まります。

new XMLHttpRequest() //IE7、Firefox、Safariなど;
new ActiveXObject("Msxml2.XMLHTTP") //IE5+の新しいバージョン;
new ActiveXObject("Microsoft.XMLHTTP") //IE5+の古いバージョン;
new XDomainRequest() //IE8+のみ。IE7のXMLHttpRequest()オブジェクトよりも「セキュア」で多機能な方法です;

 IE6やそれ以前では、XMLHttpRequest()がサポートされていない代わりにAjaxリクエスト用の独自のActiveXObjectを使います。このオブジェクトを作って、各種のブラウザに対応するため、tryおよびcatchステートメントを使います。これは、この種の問題に対処するための一般的な方法です。以下で詳しく説明します。


<html>
<body>
<script type="text/javascript">function AjaxFunction()

var xmlHttp;
try

// Firefox, Opera 8.0+, Safari 
xmlHttp=new XMLHttpRequest(); 
}
catch (e)

// Internet Explorer 
try

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
}
catch (e)

try

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
}
catch (e)

alert("Your browser does not support Ajax!"); 



}
</script>
</body>
</html> 


解説

 この説明で、Ajaxリクエストを処理するために作成した関数はAjaxFunctionという名前です。

 最初に、関数内にXMLHttpRequestオブジェクトを保持するための変数xmlHttpを作る必要があります。

 次に、XMLHttp=new XMLHttpRequest()を使ってオブジェクトの作成を試みます。この方法はFirefox、Opera、Safariブラウザで使うものです。この方法が失敗した場合、xmlHttp=new ActiveXObject("Msxml2.XMLHTTP")を試みます。これはInternet Explorer 6.0+用の方法です。この方法も失敗した場合は、Internet Explorer 5.5+用の方法であるxmlHttp=new ActiveXObject("Microsoft.XMLHTTP")を試みます。

 この3つの方法がすべて失敗した場合、ユーザーの使っているブラウザは非常に古いものなので、ブラウザがAjaxをサポートしていないことを示す通知を表示します。

 注:上に示したブラウザ固有のコードは、長くて非常に複雑なものです。しかし、XMLHttpRequestオブジェクトを作るときには常にこのコードが使えます。上のコードは、Internet Explorer、Opera、Firefox、Safariという一般的なすべてのブラウザと互換性があります。


1    2    3    4    次のページ

Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.