PHP会话变量在Javascript INTERVAL中不会更改


PHP Session variable do not change in Javascript INTERVAL

我的SQL数据库从几个用户那里获取新记录。

每个用户都需要实时查看最后的记录。新记录可以由他自己或其他用户生成。

我不想让每个间隔时间的流量再次写入所有数据。我去检查是否有新记录,然后将数据写入分区。

我为每个用户定义了一个会话变量来显示获得的新记录:$_session['isnewr']

在PHP中,当获取新记录时,$_SESSION['isnewr']=1;{效果良好}

在PHP中,当将记录写入div时,$_SESSION['isnewr']=2;{效果良好}

在浏览文件时,我使用JavaScript间隔来检查新记录。在interval函数中,我检查是否有新的记录,然后在div.中写入记录

问题:当php中的$_SESSION['isnewr']发生更改时,它会在运行时开始时冻结为"第一个值"。然后,即使没有任何新的记录,它也会一次又一次地写入div[我确信,因为我通过播放声音检查了写入循环]

注意:我不能使用cookie,因为有几个用户有数据输入

文件:index.php

<?php
session_start();
?>
<script type="text/javascript">
var t = setInterval(function(){check_is_new()},3000);
function check_is_new()
{
isnewrec = "<?php echo $_SESSION['isnewr']; ?>";
if (isnewrec == "1")
{
write_all();
}
function write_all()
{
// write data to div, works good
}
</script>

页面一发送,服务器上php中发生的事情就完全脱离了js。所以若要再次检查服务器上的内容是否发生了更改,您需要刷新页面或发送ajax请求。

创建您将请求的专用页面,如果我是新的,则该页面将使用数据进行响应,或者使用预定义的响应,例如"0"、"-1"或"false"(如果没有新的内容显示)。