Ajax(エイジャックス)についてpc操作中

きほん

「Asynchronous JavaScript and XML」の略。JavaScript,jQueryを使う。

サーバとのデータのやり取りを「非同期通信」にして、ウェブページを書き換える。
ページ全体を読み直さずに、ページの一部分のみ書き換えることができる。
GoogleサジェストやGoogleマップなどに使われている。

HTTPリクエストメソッド getやpostのこと。

XMLHttpRequest

非同期でクライアントとサーバーが通信して、データをやり取りする。

IEだと「ActiveX」になる。

第一段階

要求を制作しサーバーに送信する(リクエスト)。

var x=new XMLHttpRequest();

new演算子を使ってオブジェクトを作成します。「x」は単なる変数名のため、なんでもよい。

IEの場合  x=new ActiveXObject("Microsoft.XMLHTTP");

openメソッド

open("GET", "送信先URL", true);

「第一引数」getかpostなどを設定する。
「第二引数」送信先のURLを設定する。
上の二つは必須。 場合によって第三引数も設定(trueかfalse)。 同期通信は「false」を、非同期通信は「true」を指定します。
省略した場合は非同期通信の「true」になります。
sendメソッドサーバーにデータを送信します。

x.send();

第二段階

サーバーからのデータを受信(レスポンス)し、受信データを表示するなど処理する。

onreadystatechangeプロパティ readyStateプロパティの値が「読み込み完了」⁠や「⁠失敗」などの状況により実行する関数を設定する。

x.onreadystatechange = function() {命令文}

「無名関数」を使い、引数はありません。
readyStateプロパティ

状態を示す。データ受信が完了したかどうかを確認する。

状態
0 始まっていない
1
2 リクエスト送信中
3

受信中

4 全受信完了

成功の場合x.readyState == 4

statusプロパティ

データ読み込み成功か,失敗か判別する。

状態
200 正常
401
403
404 ファイルが見つからない
500 サーバーエラー

成功の場合x.status == 200

responseTextプロパティとresponseXMLプロパティ

responseTextプロパティ テキスト形式でデータを取得する。 オブジェクト名.responseText

responseXMLプロパティ XML形式でデータを取得する。 オブジェクト名.responseXML

if( x.readyState == 4 && x.status == 200 ) { alert( x.responseText ); }

if( 条件式 ){ 処理 } 条件式に合致していれば、{   }内の処理を行う

&& 両方正しければ
alert(); 表示する。

完成形

完成形1

var x = new XMLHttpRequest(); // XMLHttpRequestのインスタンスを作成

x.open( "GET", "送信先URL" ); // 送信先URLやメソッドを設定します

x.send(); // リクエストをサーバに送信

x.onreadystatechange = function() { if( x.readyState == 4 && x.status == 200 ) { alert( x.responseText ); } }
// データ受信、読み込み時の処理を設定

// readyState=4は全データ受信完了。 // status=200は正常に処理されたことを意味する。
// responseTextに格納された情報をalertで出力

外部リンク参考サイトさん

・Ajax入門  ・Ajax、XMLHttpRequestについて

楽しくpc