Задать вопрос
@arcanrun

Почему в Comet (Long-Polling) данные не приходят моментально?

У меня не получается сразу получать новые данные - они приходят только после нового выполнения функции getmess, которая выполняется по истечению таймера, в чем может быть ошибка?

function getmess(){
$.ajax({
url:"get_mess.php",
type:"POST",
data:{"id":id},
cahce:false,
timeout:30000,
async:true,
success:function(result){
$("#response").html(result);
setTimeout('getmess()',10000);
}
});
}

на сервере:

while(true){
$a=$_POST["id"];
$find_mess=(mysql_query("SELECT * FROM saymon WHERE id> '$a' "));
if (mysql_num_rows($find_mess)) {
while($row=mysql_fetch_array($find_mess)){
echo $row['mess']."";
}

flush();
exit;
}

sleep(5);
}
mysql_close();
  • Вопрос задан
  • 3079 просмотров
Подписаться 3 Оценить 1 комментарий
Ответ пользователя olegmar К ответам на вопрос (4)
@olegmar
Ну так у вас setTimeout стоит с интервалом в 10 сек + еще sleep 5 сек, конечно данные не будут приходить моментально.
Ответ написан