>> JavaScript入門トップに戻る
今回はAjaxについて説明します。
エイジャックス、もしくはアジャックスと読みます。
これはJavaScriptを使って、HTTPリクエストを発行し、
非同期でサーバとの通信のやりとりを実現する仕組みのことを言います。
これを使えば、サーバ側のプログラムCGIなどと連携して、さまざまな処理をすることができます。
サーバと非同期通信はできるのですが、通信できるのは同ドメイン内のサーバとだけです。
他のドメインのサーバとは通信できないので注意して下さい。
まずは下記のコードを見てください。
↑のボタンを押してみてください。
メッセージが表示されましたよね?
それではコードの説明を行います。
まずajaxを使って通信を行うには、XMLHttpRequestというオブジェクトを作成し、
そのメソッドを使って通信します。
ですが、IEなどではこのオブジェクトが存在しません。別のオブジェクトを使う必要があります。
そのために、ブラウザによってajaxを使う為のオブジェクト作成方法が違うため、
それぞれのブラウザに対応したコードを書く必要があります。
まず、if文に、XMLHttpRequestとだけ書くと、
このオブジェクトが使える場合は、真になります。
その場合は、new演算子で、
new XMLHttpRequest();
と書いてやり、オブジェクトを生成してあげます。
もしこのオブジェクトがない場合は、偽になりますので次のif文に処理が移ります。
XMLHttpRequestが使えない場合は、ActiveXObjectというものを使って、
対象のオブジェクトを指定してやり、ajaxを使うことになります。
new ActiveXObject("オブジェクト名");
と書きます。もしオブジェクトがなかった場合はnullが返ります。
今回は、
MSXML2.XMLHTTP.6.0
MSXML2.XMLHTTP.3.0
MSXML2.XMLHTTP
の三つを一つ一つif文にかけて、使えれば変数へ代入しています。
バージョンが上の方がより処理が高速化されています。
まずは、ブラウザによる違うをクリアするために、このようにしてオブジェクトを作成します。
次の講座で、通信部分の解説をします。
>> 【Ajaxによる通信】に進む
>> JavaScript入門トップに戻る
Ajaxについて
エイジャックス、もしくはアジャックスと読みます。
これはJavaScriptを使って、HTTPリクエストを発行し、
非同期でサーバとの通信のやりとりを実現する仕組みのことを言います。
これを使えば、サーバ側のプログラムCGIなどと連携して、さまざまな処理をすることができます。
サーバと非同期通信はできるのですが、通信できるのは同ドメイン内のサーバとだけです。
他のドメインのサーバとは通信できないので注意して下さい。
まずは下記のコードを見てください。
function GetData(){
var ajax=null;
//XMLHttpRequestが使えるか
if(XMLHttpRequest){
ajax=new XMLHttpRequest();
}else{
ajax= new ActiveXObject('MSXML2.XMLHTTP.6.0');
if(!ajax){
ajax = ActiveXObject('MSXML2.XMLHTTP.3.0');
if(!ajax){
ajax = ActiveXObject('MSXML2.XMLHTTP');
//ajax通信は行えないので処理終了
if(!ajax){
alert("ajaxは使えません");
return;
}
}
}
}
ajax.open('GET','/script/ajaxtest.txt',true);
ajax.onreadystatechange = function Receive(){
if(ajax.readyState==4 && ajax.status==200){
alert(ajax.responseText);
return;
//200以外はエラー
}else if(ajax.status!=200){
alert("エラーが発生しました:"+ajax.status);
return;
}
}
//サーバ側で処理する場合は、以下のヘッダーの設定が必要。
//.setRequestHeader('Content-Type',"application/x-www-form-urlencoded; charset=utf-8");
ajax.send(null);
}
↑のボタンを押してみてください。
メッセージが表示されましたよね?
それではコードの説明を行います。
まずajaxを使って通信を行うには、XMLHttpRequestというオブジェクトを作成し、
そのメソッドを使って通信します。
ですが、IEなどではこのオブジェクトが存在しません。別のオブジェクトを使う必要があります。
そのために、ブラウザによってajaxを使う為のオブジェクト作成方法が違うため、
それぞれのブラウザに対応したコードを書く必要があります。
まず、if文に、XMLHttpRequestとだけ書くと、
このオブジェクトが使える場合は、真になります。
その場合は、new演算子で、
new XMLHttpRequest();
と書いてやり、オブジェクトを生成してあげます。
もしこのオブジェクトがない場合は、偽になりますので次のif文に処理が移ります。
XMLHttpRequestが使えない場合は、ActiveXObjectというものを使って、
対象のオブジェクトを指定してやり、ajaxを使うことになります。
new ActiveXObject("オブジェクト名");
と書きます。もしオブジェクトがなかった場合はnullが返ります。
今回は、
MSXML2.XMLHTTP.6.0
MSXML2.XMLHTTP.3.0
MSXML2.XMLHTTP
の三つを一つ一つif文にかけて、使えれば変数へ代入しています。
バージョンが上の方がより処理が高速化されています。
まずは、ブラウザによる違うをクリアするために、このようにしてオブジェクトを作成します。
次の講座で、通信部分の解説をします。
>> 【Ajaxによる通信】に進む
>> JavaScript入門トップに戻る













