[JavaScript] JavaScript で2台のウエッブサーバーの死活をチェックし,その結果で生きているGGサーバーにログオンしたい.できれば, img タグを使わず,スクリプトだけで行いたい.
技術ノート
2016/08/01
[番号]
技術ノート KGTN 2016071201
[現象]
[JavaScript] JavaScript で2台のウエッブサーバーの死活をチェックし,その結果で生きているGGサーバーにログオンしたい.できれば, img タグを使わず,スクリプトだけで行いたい.
[説明]
2台のウエッブサーバーに死活をチェックするための画像ファイルを配置し,その読み込みの成否によってログオンするGGサーバーを切り替えるサンプルコード (スクリプト版) を以下に示します.
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;shift_jis" http-equiv="Content-Type">
<title>Logon</title>
<script language=javascript>
var addrServer1 = '192.168.102.98';
var addrServer2 = '192.168.102.89';
var statusServer1 = false;
var statusServer2 = false;
function updateServer(n,s)
{
var target = '';
var params = location.search;
params = params.substring(1);
if(params.length == 0)
{
params = 'dummy=dummy';
}
// 死活情報を更新
switch(n)
{
case 1:
statusServer1 = s;
break;
case 2:
statusServer2 = s;
break;
}
// 死活情報が揃ったか?
if((statusServer1 != false)&&(statusServer2 != false))
{
// メインサーバーへ接続可能?
if(statusServer1 == 'OK')
{
target = 'http://' + addrServer1 + '/goglobal/logon.html?host=' + addrServer1 + '&' + params;
// alert('Server1: ' + target)
location.href = target;
}
// サブサーバーへ接続可能?
else if(statusServer2 == 'OK')
{
target = 'http://' + addrServer2 + '/goglobal/logon.html?host=' + addrServer2 + '&' + params;
// alert('Server2: ' + target)
location.href = target;
}
else
{
alert("アクセス可能なサーバーがありません。")
}
}
}
// サーバー1のイメージをロード
var image1 = new Image(0,0);
image1.onload = function myOnLoad()
{
updateServer(1,'OK');
};
image1.onerror = function myOnError()
{
updateServer(1,'NG');
};
image1.src = 'http://' + addrServer1 + '/test.png';
// サーバー2のイメージをロード
var image2 = new Image(0,0);
image2.onload = function myOnLoad()
{
updateServer(2,'OK');
};
image2.onerror = function myOnError()
{
updateServer(2,'NG');
};
image2.src = 'http://' + addrServer2 + '/test.png';
</script>
</head>
<body>
</body>
</html>