0

さて、これは私の問題です。私は現在、Minecraft クエリを使用して Minecraft サーバーをチェックし、PHP 用の Teamspeak フレームワークを使用してチームピーク サーバーをチェックする (ちょっとした) 動作する Web ページを持っています。

現在の問題は、これらのことを確認するのに非常に長い時間がかかり、サーバーがオンラインかオフラインかを確認するまでウェブサイトの読み込みが一時停止することです.

最初に Web サイトをロードしてから、サーバーが稼働しているかどうかを確認する方法はありますか? また、ページの残りの部分をリロードせずに、これを時々リロードする方法もあります。

JavaScriptでこれを行うことができると思いますが、私はそれを使用したことがないのでわかりません.

注: コードを投稿しない理由は、コードに重要な情報が含まれているためです。それが必要かどうかはわかりません。もしそうなら、教えてください。

4

3 に答える 3

1

JavaScript と XHR または WebSockets も使用します。ただし、これが大きなステップである場合に備えて、( Transfer-Encoding: chunkedHTTP ヘッダーを使用して) 結果をチャンクで提供することもできます。

次に、サーバーのリストを 1 つずつ出力できます。データの各チャンクは、利用可能になるとブラウザーによって表示されます。これを機能させるには、最初にあらゆる種類の出力バッファリングを無効にし ( )、PHP の関数while(ob_get_level() > 0) ob_end_clean();を使用してヘッダーを明示的に設定し、各チャンクの後に使用する必要があります。理想的には、(サーバーのステータス以外の) すべての情報がその前に出力されるように、HTML を配置する必要があります。headerflush()

また、新しいチャンクで DOM を更新するとき、すべてのブラウザーが同じ間隔を持つわけではなく、HTML ドキュメントが「未完成」である限り、ブラウザーのタグ スープ解析に完全に依存していることに注意してください。そうは言っても、これは目的を達成するためにスクリプト作成を回避する便利な方法です。

<iframe>または、または<object>タグを使用してステータス セクションを静的ページに埋め込むこともできます。

于 2013-09-17T18:43:27.760 に答える
1

PHP スクリプト (サーバー上にある) に対して AJAX 呼び出しを行い、サーバーの状態をクエリしてチェックし、結果をクライアントに返します。これにより、ページが読み込まれるたびにスクリプトが呼び出され、大量のリソースが使用される可能性があります。

または、( cronjobなどを使用して) サーバーのステータスを定期的にチェックし、データベースに保存して、要求されたときに表示することもできます。

于 2013-09-17T18:25:40.437 に答える