Я делаю систему уведомлений, похожую на красное уведомление на Facebook. Он должен обновлять количество сообщений, отправленных пользователю в режиме реального времени. Когда сообщение MYSQL таблица обновляется, оно должно немедленно уведомить пользователя, но это не так. Кажется, не возникает ошибки при вставке в MYSQL, потому что при обновлении страницы обновление уведомлений происходит очень хорошо.
Я, по сути, использую код из этого видеоурока: http://www.screenr.com/SNH (который обновляется в режиме реального времени, если файл data.txt изменяется, но не для MYSQL, как я пытаюсь это сделать)
Что-то не так с кодом ниже:
**Javascript**
<script type="text/javascript">
$(document).ready(function(){
var timestamp = null;
function waitForMsg(){
$.ajax({
type: "GET",
url: "getData.php",
data: "userid=" + userid,
async: true,
cache: false,
success: function(data){
var json = eval('(' + data + ')');
if (json['msg'] != "") {
$('.notification').fadeIn().html(json['msg']);
}
setTimeout('waitForMsg()',30000);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
setTimeout('waitForMsg()',30000);
}
});
}
waitForMsg();
</script>
<body>
<div class="notification"></div>
**PHP***
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET' )
{
$userid = $_GET['userid'];
include("config.php");
$sql="SELECT MAX(time) FROM notification WHERE userid='$userid'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$currentmodif = $row['MAX(time)'];
$s="SELECT MAX(lasttimeread) FROM notificationsRead WHERE submittedby='$userid'";
$r = mysql_query($s);
$rows = mysql_fetch_assoc($r);
$lasttimeread = $rows['MAX(lasttimeread)'];
while ($currentmodif <= $lasttimeread) {
usleep(10000);
clearstatcache();
$currentmodif = $row['MAX(time)'];
}
$response = array();
$response['msg'] = You have new messages;
echo json_encode($response);
}
?>