一定時間が経過してもサーバーから応答がない場合の処理です。
タイムアウトしたとき、エラーメッセージを表示します。
setInterval()でタイマーを設定し、一定時間経過後に指定した関数を呼び出します。
//5000ミリ秒経過するとtimeout()を実行する
timerId = setInterval('timeout()', 5000);
XMLHttpRequestの通信を中断するときは abort() を実行します。
//タイムアウトの処理
function timeout() {
//タイマーを終了する
clearInterval(timerId);
//通信を中断する
request.abort();
}
正常に通信を行ったときも、タイマーを終了する必要があります。
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
//タイマーを終了する
clearInterval(timerId);
document.form1.textarea1.value = request.responseText;
}
}
サンプルプログラムでは、タイムアウトしたときエラーメッセージを表示します。