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);
?>