■XMLHttpRequestについて
XMLHttpRequestは、ブラウザに実装されたHTTPクライアントな機能を実現するオブジェクトです。
これによりページ遷移無しでサーバーと通信ができ、Ajaxの名前の由来どおり、これを無くしてAjaxは語れません。
XMLHttpRequestはブラウザによりオブジェクト名称が異なるので共通関数にします。
function createXMLHttpRequest(cbFunc)
{
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}
■AJAXでサーバーからデータを取得します
サンプルは
こちらから実行できます。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=shift_jis">
//上で作ったファイルをincludeします。ここではxmlhttp.jsとしています。
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function LoadFile(FileName)
{
httpObj = createXMLHttpRequest(readComplete); //
if (httpObj)
{
httpObj.open("GET",FileName,true);
httpObj.send(null);
}
}
function readComplete()
{
//通信に成功し、尚且つ受信が完了した時です
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
$("result").innerHTML = httpObj.responseText;//サーバのデータを格納します
}else{
//読み込み中の処理を書きます。
$("result").innerHTML = "<b>Loading...</b>";
}
}
// -->
</script>
</head>
<body>
<h1>サーバー上のファイルを読み込む</h1>
<form name="ajaxForm">
<input type="button" onClick="LoadFile('file.html')"><br>
</form>
<div id="result"></div> //結果表示用のオブジェクト
</body>
</html>