我目前有一个ajax脚本来运行一个每5秒运行一次的notiload.php文件来检查数据库中是否有更改,如果有更改则输出" 1新"一条消息。但是,我将在该文件中引入通知声音。加载文件时,它会每5秒钟响一次。当然这会让人们生气。所以我需要脚本来检查数据库中是否有变化。我有每条消息的时间和日期标记,消息被视为2而不是1.因此,如果数据库发生变化,我将需要它来调用该文件或播放声音。
这是我在主页面中的ajax脚本
<script type="text/javascript">
$(document).ready(function(){
refreshTable<?= $FriendName->id ?>();
});
function refreshTable<?= $FriendName->id ?>(){
$('#NotiLoad<?=$FriendName->id?>').load('elements/notiload.php?id=<?=$FriendName->id?>', function(){
setTimeout(refreshTable<?= $FriendName->id ?>, 5000);
});
}
</script>
&#13;
<div id="NotiLoad<?= $FriendName->id ?>" style="display: inline-block;"></div>
&#13;
这是notiload.php的php
<?php
session_start();
// redirect to index page if not superuser
$con = mysqli_connect('localhost','root','','');
if (!$con) {
die('Could not connect to Socialnetwk DB: ' . mysqli_error($con));
}
mysqli_select_db($con,"ajax_demo");
?>
<?php
$uid = $_GET['id'];
$mid = $_SESSION['user']['id'];
?>
<?php $usrload = $con->query("SELECT * FROM message WHERE sender = $uid AND recipient = $mid AND seen = '2' OR sender = $mid AND recipient = $uid AND seen = '2'"); ?>
<?php while($FriendName = $usrload->fetch_object()): ?>
<h6 style="display:inline-block;font-size: 10px;color:#37BC9B">1 New</h6>
<?php endwhile;?>
&#13;