1

私は非常に小さな (内部) 専用 Web サーバーをセットアップしており、XML ファイルから 10 秒ごとにエネルギー データを取得する必要があります。これは私がこれまでに持っているPHPコードです:

 <?php 
    $mydata = simplexml_load_file('http://192.168.x.xx:yyy/data.xml');

    echo $mydata->device[0]->name;
    echo $mydata->device[0]->value;
 ?>

Web サーバーで同様のコードをテストし、PHP がインストールされていて、これでうまくいくはずですが、10 秒ごとに実行したいと考えています。このようにして、私の Web ページに表示されるデータは常に最新です。ウェブページは、壁の看板として 24 時間年中無休で運営されます。データを更新する最も簡単な方法は何ですか?

4

4 に答える 4

4

Ajaxを使用して、データを表示する Web ページの部分を更新するだけです。JavaScript タイマーを使用して更新をトリガーします。

于 2012-07-02T01:23:59.560 に答える
2

最も簡単な方法は?この行をページに追加します。

<meta http-equiv="refresh" content="10">

ただし、特にページに 10 秒ごとにリロードする必要のないものがたくさんある場合は、これが最善の方法ではない可能性があります。その場合は、AJAXを調べる必要があります。

必要なデータのみを返すページ設定がある場合 (例のように)、JavaScript を使用して 10 秒ごとに非同期リクエストを作成しsetInterval()、最新のデータを取得して表示できます。

于 2012-07-02T01:25:42.607 に答える
0

Linux / Unixでサーバーを実行していると仮定すると、おそらくそのためのcronjob(自動化されたジョブ)の作成を検討しますか?

私が考えることができる1つの解決策は、PHPスクリプトを10秒ごとにcronジョブとして実行し、出力をファイルまたはデータベーステーブルに書き込むことです。

次に、誰かがブラウザにロードするたびにファイル/DBエントリの内容を読み取る別のPHPスクリプトを作成できます。

于 2012-07-02T02:15:23.690 に答える
0

これをブラウザーで実行している場合は、Eric の回答を使用します。

ただし、これをコマンドラインから実行している場合は、次の 2 つのいずれかを実行できます。

  1. 現在のスクリプトに、10 秒ごとに cron ジョブから実行する pull_energy_data.php を指定します。ある種のロック機構を作成することを忘れないでください。ジョブの実行に 10 秒以上かかる場合に備えて、同時に複数のスクリプトを実行します。

  2. もう 1 つの方法は、pull_energy_data.php をラップするスクリプトをループで実行し、10 秒ごとに実行することです。これは、pull_energy_data.php が最後にいつ実行されたか、およびラッパー スクリプトを停止するコマンドを発行する方法を追跡する必要があるため、以前のアプローチよりも望ましくありません。

于 2012-07-02T01:46:57.520 に答える