Top / Programming / JavaScript / 通信タイムアウトの処理

通信タイムアウトの処理

一定時間が経過してもサーバーから応答がない場合の処理です。

タイムアウトしたとき、エラーメッセージを表示します。

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;
  }
}

サンプル

サンプルプログラムでは、タイムアウトしたときエラーメッセージを表示します。