私は mysql で twitter ストリーミング データを使用しており、5 ~ 10 レコード/秒ごとに追加し続けています。ここで、クライアントがページを開いたときに開始され、ページが閉じるまで継続的に作成されたすべての新しいレコードを取得したいと考えています。データは、マップをマークするための地理的位置を含む json であり、javascript 変数内にある必要があります。json 形式は次のとおりです。
{max data: 30; data: [{"lat":-6.92015,"lon":107.67024,"value":0.1},...]}
私はAJAXを掘り下げてきましたが、成功していません。ここに私の現在のコード:
get_query.php
<?php
require_once('./db_connect.php');
$dbcon=new db;
$query="SELECT geo_lat, geo_long FROM location WHEN created_at >= NOW()";
$result = mysqli_query($dbcon, $query);
$data= array();
while($row= mysqli_fetch_assoc($result)){
$data[] = array("lat"=>(float)$row["geo_lat"], "lon"=>(float)$row["geo_long"], "value"=>0.1);
}
echo json_encode($data);
?>
data.js
var data = new array();
$(function() {
setInterval(function() {
$.ajax({
type: "GET",
url: "/absolute/path/of/get_query.php",
dataType: "json",
data: $(this).serialize(),
success: function(response) {
data = response;
}
});
}, 1000);
});
私の質問: 1. ユーザーがページを開いた後、php コードを継続的に実行するにはどうすればよいですか? 2. ajax で以前のデータを削除せずに、PHP から継続的にデータを取得する方法は? 3.ユーザーがページを閉じてmysqlのレコードを空にするときにイベントを取得する可能性がありますか?
ありがとう