0

PHP の .net オブザーバーのようなソリューションを探していて、このコードに出くわしました。以下に表示されています。私のアプリケーションは、データベースの変更 (新しいレコードまたは既存のレコード ステータスの変更) が発生するまで待機してから、クライアント ページにレコードのリストを再入力する必要があります。問題は、以下のコード チャンクのような txt ファイルを使用していないため、filemtimeデータベースの変更や新しいレコードを確認するために を使用できない可能性があるということです。データベースクエリの結果をどのように使用しますか?

私のニーズに合わせて変更が必要なコードチャンク:

<script>

var timestamp = null;
function wait_for_message(){
    $.ajax({
        type: "GET",
        url: "get_data.php?time_stamp=" + time_stamp, 
        async: true,
        cache: false,
        success: function (data){
            var json - eval('(' + data + ')');
            if(json['msg'] != "") {
            alert(json['msg'] );
        }
        time_stamp = ['time_stamp'];
        setTimeout('wait_for_message(), 1000);
    }});
}

$(document).ready(function (){
    wait_for_message();
});

</script>

そしてphpファイル

<?php

$filename = dirname(__FILE__).'/data.txt';

$last_modif = isset($_GET['time_stamp']) ? $_GET['time_stamp'] : 0;
$current_modif = filemtime($filename);

while ($current_modif <= $last_modif){
    usleep(1000);
    clearstartcache();
    $current_modif = filemtime($filename);
}

$response = array();
$response['msg'] = file_get_contents($filename);
$response['time_stamp'] = $current_modif;
echo json_encode($response);

?> 
4

1 に答える 1

0

node.jsを発見する前にこのコードを使用していました

それはずっと前のことですが、 time_stamp という名前のテーブルに列を追加するだけで、行を追加するときに time() を入れることができます (または挿入の時間を示すものは何でも) 。

$last_modif = isset($_GET['time_stamp']) ? $_GET['time_stamp'] : 0;
$current_modif = $query("select `time_Stamp` from table order by time_stamp desc limit 1" );
于 2012-09-17T15:03:33.747 に答える