新JavaScript例文辞典

非同期通信を行う

説明

非同期通信を行うにはnew XMLHttpRequest()を使います。これにより非同期通信オブジェクトが作成されます。読み込みが完了した時に処理する場合にはonloadプロパティに関数を指定します。通信の設定にはopen()を使い、最初のパラメータにメソッド (get, post。サーバーによっては他のメソッドも指定可能)、2番目のパラメータにURL、3番目のパラメータにtrueを指定します。通信を開始するにはsend()を使います。getメソッドの場合はnullを、postメソッドの場合はサーバーに送信するデータ (URLパラメータ形式) を指定します。
なお、セキュリティの都合により同一ドメイン上のサーバー上にあるファイルしか読み込むことができません。また、バイナリファイルを読み込むことはできません (バイナリファイルを読み込むには専用のライブラリ [http://nagoon97.wordpress.com/2008/04/06/reading-binary-files-using-ajax/]が必要です)。
Internet Explorer 6ではXMLHttpRequest()がないためActiveX()を使う必要があります。また、Internet Explorerではonloadイベントがないため、通信状態を調べて処理する必要があります。

サンプルプログラム

window.onload = function(){
var httpObj = new XMLHttpRequest();
httpObj.onload = function(){
document.getElementById("result").innerHTML = httpObj.responseText;
};
httpObj.open("get","sample.txt",true);
httpObj.send(null);
}
サンプルを実行
[戻る]