いくつかの異なるサーバーのステータスをチェックし、それらがオンラインかどうかを判断し、バージョン情報を出力し、サーバー上のデータベースを更新するオプションを提供するために使用される php スクリプトをコーディングしました。
私が抱えている問題は、スクリプトがオフラインのサーバーに到達すると、チェックの実行中に非常に長い時間ハングすることです。これを回避する良い方法は、jQuery や XAJAX などを使用してさまざまなサーバーを非同期にロードし、1 つのサーバーがスクリプト全体をハングさせないようにすることだと考えました。
1 つの関数を呼び出して、すべてのチェックとサーバー情報のエコーを開始します。
outputServerInfo("addressOfServerHere", "nameofServerHere", array("Names", "of", "databases");
私の質問は、これらのサーバーを非同期的にロードするための最良の方法は何でしょうか? チェックを実行している間、各サーバーの代わりに「読み込み中...」と言うことができれば理想的です。私はこれまで jQuery や XAJAX を使用したことがないので、コミュニティから情報を得るのが最善だと考えました。ありがとう!
編集:すべてのサーバーをロードして動作するようになりましたが、別の問題があります。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
document.write("<h1>Server Manager</h1><form method='post' name='form1'>");
function server_output(serverName) {
document.write("<div id=" + serverName + "Loading>Loading " + serverName + "...</div>");
$.ajax({
url : 'serverManager.php',
async: true,
type : 'POST',
data : 'serverName=' + serverName,
success : function(msg){
document.write("<div id=" + serverName + "Loading>");
document.write(msg);
document.write("</div>");
}
});
}
server_output("serverName");
</script>
<input type='SUBMIT' value='GO' name='btnGo' onSubmit=document.form1.submit(); />
<input type='HIDDEN' name='ACTION' value='GO' />
ページを読み込むと、サーバー マネージャーのヘッダーと、最後のタグの後にあるボタンが表示されますが、ほとんどすぐに消えてしまいます。その後、サーバー情報が読み込まれ、再表示されないため、タイトルと、フォームを使用できるボタンが表示されません (私の php スクリプトは、更新のためにサーバーにジョブを送信するために使用されるチェックボックスを作成します)。 . 何か案は?