gpt4 book ai didi

php - 使用ajax实时获取mysql新记录

转载 作者:行者123 更新时间:2023-11-30 01:36:44 27 4
gpt4 key购买 nike

我在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com