0

我正在寻找一些解决方案,例如 .net php 观察者,我遇到了这段代码,它显示在下面。我的应用程序应该等到数据库更改发生 - 新记录或现有记录状态的更改,然后重新填充客户端页面上的记录列表。问题是 - 我没有使用下面代码块中的 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 回答