-WishMaster-
Guest
Проблема с выбором последних сообщений в чате при обновлении невидимого фрейма
Народ, очень нужна ваша помощь. Необходимо создать чат, но без рефреша главного фрейма, в котором идут сообщения, т.е. чтобы не было мерцаний. Поискал в инете инфу про создание такого чата и нашел статью про то, что можно использовать невидимый фрейм, который будет постоянно рефрешиться и джаваскриптом передавать сообщения в другой. Так вот, в принципе, там все понятно, но автор в примере не указал как сделать так, чтобы скрытый фрейм "понимал" какие сообщения в логе старые, а какие новые и выводил только новые. Есть идея сделать этот скрипт основываясь на время сообщения и время последнего переданного сообщения или последнего рефреша скрытого фрейма. Проблема заключается в том, что я довольно плохо представляю как такой скрипт можно реализовать
Вот как у меня сейчас всё работает: c формы, сообщение сохраняется в файл msg.txt (базу данных я не использую) в таком виде: "\n $nick : $time_sent : $msg<br>". Далее, невидимый фрейм постоянно обновляется и джаваскриптом перекидывает сообщения в другой, основной фрейм с чатом (это сделано для того, чтобы он не мерцал). Вот код невидимого фрейма:
этот код был частями взят из разных чатов, поэтому некоторые вещи я здесь объяснить не могу
На данный момент происходит следующее: этот скрипт берет все сообщения из чата msg.txt и пересылает во фрейм сообщений с каждым рефрешем ПОЛНОСТЬЮ
Пример работы скрипта можно посмотреть здесь. Так вот, мне надо как-то сделать скрипт вместо этого всего или в дополнение к этому - хз, чтобы при рефреше этой странички, он брал из файла msg.txt только те сообщения, которые позже даты последнего выведеного в фрейм msg сообщения или который позже последнего рефреша. Как это реализовать я, к сожалению, не знаю ..
Народ, очень нужна ваша помощь. Необходимо создать чат, но без рефреша главного фрейма, в котором идут сообщения, т.е. чтобы не было мерцаний. Поискал в инете инфу про создание такого чата и нашел статью про то, что можно использовать невидимый фрейм, который будет постоянно рефрешиться и джаваскриптом передавать сообщения в другой. Так вот, в принципе, там все понятно, но автор в примере не указал как сделать так, чтобы скрытый фрейм "понимал" какие сообщения в логе старые, а какие новые и выводил только новые. Есть идея сделать этот скрипт основываясь на время сообщения и время последнего переданного сообщения или последнего рефреша скрытого фрейма. Проблема заключается в том, что я довольно плохо представляю как такой скрипт можно реализовать

PHP:
<HTML>
<HEAD><TITLE>TalkVille</TITLE>
<META http-equiv="refresh" content="5">
</HEAD>
<BODY>
<?
$file=file("msg.txt");
$file=array_reverse($file);
$len=sizeof($file);
for($i=0;$i<$len;$i++) {
@$output.=chop($file[$i]);
}
$MessagesOnPage=20;
if($len>$MessagesOnPage){
$file=@fopen("msg.txt","w+");
$content="";
@fputs($file,$content);
@fclose($file);
}
print "<script language='JavaScript'>var doc=parent.msg.document.all.msg; doc.innerHTML=doc.innerHTML+'$output';</script>";
?>
</BODY>
</HTML>

