5分ごとにサーバーへのAjax呼び出しを行うJavascript JQueryコードがいくつかあります。これは、サーバーセッションを存続させ、ユーザーをログイン状態に保つためです。私は$.ajax()
JQueryでメソッドを使用しています。この関数には、ユーザーのインターネット接続がダウンしてKeepAliveスクリプトが引き続き実行される場合に使用しようとしている「エラー」プロパティがあるようです。次のコードを使用しています。
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
実行すると、10秒ごとに警告ボックスの画面に「成功」ポップアップが表示されますが、これは問題ありません。ただし、ネットワークケーブルを抜くとすぐに何も表示されず、エラー関数が呼び出されて「失敗」警告ボックスが表示されると予期していましたが、何も起こりません。
「エラー」関数はサーバーから返された「200」以外のステータスコードに対してのみであると想定して正しいですか?Ajax呼び出しを行うときにネットワーク接続の問題を検出する方法はありますか?