我在 mysql 中有一个 Twitter 流数据,它不断地每 5-10 条记录/秒添加一次。现在,我想获取创建时间的每条新记录,从客户端打开页面开始,一直持续到页面关闭。数据是 json,其中包含用于标记 map 的地理位置,并且它必须位于 javascript 变量内,这里是 json 格式:
{最大数据:30;数据:[{“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中的记录时可能会收到事件吗?
谢谢
最佳答案
对于1和2,您需要使用轮询。检查这个例子:How do I implement basic "Long Polling"?
对于 3,你可以使用这个:
window.onbeforeunload = function() {
$.ajax({
type: 'POST',
async: false, //Important
url: 'function.php', //Here goes the function that deletes rows
data: {param: param} //Here the params, if needed
});
};
我认为这应该可以解决这个问题!
关于php - 使用ajax实时获取mysql新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780992/