私はWebツールを使っています。 PHP、HTML、MySQLで構築されています。私の必要性は、サーバーの到達可能性を毎回確認することです。これまでは、JQuery-Ajax関数を使って簡単なクエリを送信しようとしましたが、クエリが受信された場合はOKメッセージを表示し、それ以外の場合はエラーメッセージを表示します。この要求はx秒ごとに送信されます。私は、サーバーの到達可能性を判断するための方法よりも優れている方法があるかどうかを知りたいと思います。何らかの理由でサーバがもはやアクティブではないことをクライアント側に知らせたいと思います。サーバー到達可能性を確認してください
これは私がこれまで持っているものです。
クライアント側
<!DOCTYPE html>
<head>
<script src="assets/js/jquery.js"></script>
<link href="https://opensource.keycdn.com/fontawesome/4.7.0/font-awesome.min.css" rel="stylesheet">
</head>
<title>Check for MySQL availability</title>
<body onload="checking()">
<p style="display: inline;">MySQL</p>
<!-- Simple circle colored as orange (determining), red (unavailable) and green (available) -->
<p style="display: inline;" id="world"><i class="fa fa-circle" aria-hidden="true"></i></p>
</body>
<script>
function checking(){
var dataString = 'signum=some_string';
$.ajax({
type: "POST",
url: "testsql.php",
data: dataString,
cache: true,
timeout: 30000, //Timeout after 30 seconds
beforeSend: function(){
//Checking status... (orange)
$("#world").html('<i class="fa fa-spinner fa-pulse fa-fw"></i>').css('color', 'orange');
},
error: function() {
//Show MySQL as unavailable (red)
$("#world").html('<i class="fa fa-circle" aria-hidden="true"></i>').css('color', 'red');
},
success: function(data){
if(!data){
console.err("Error!");
//MySQL is unavailable (red)
$("#world").html('<i class="fa fa-circle" aria-hidden="true"></i>').css('color', 'red');
}else if(data){
//MySQL is available (green)
console.log("MySQL available!");
$("#world").html('<i class="fa fa-circle" aria-hidden="true"></i>').css('color', 'green');
}else{
//MySQL is unavailable (red)
console.err("Error!");
$("#world").html('<i class="fa fa-circle" aria-hidden="true"></i>').css('color', 'red');
}
}
});
//Send Ajax requests every 3 seconds
var t = setTimeout(checking, 3000);
}
</script>
</html>
注:Is there any way to check reachability test of server in jQueryに提供するソリューションは、私のため
に理想的です。 httpステータスコードを調べることで拡張することができます。具体的には、インターネット接続やデータベース自体が問題であるかどうかを確認することができます。もし 'websockets'や他の' server push technology'を使うことができれば、これをすべて実行して、サーバーにクライアントに通知するようにしてください。しかしそうでなければ、あなたはこの種の「ポーリング」に立ち往生しています。 – Shilly
エラー関数jqXHR、textStatus、errorThrownをキャッチして試してみましたが、エラーがあることを知ることでクライアントが認識できるようになっていることがわかります。私はWebSocketの実装についてさらに調査します。洞察に感謝します。 –