|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Arkhipov Dmitriy 2:5020/400 25 Nov 2001 14:24:32 To : Rostislav Podgornyi Subject : Re: чат -------------------------------------------------------------------------------- День добрый, Rostislav Podgornyi! RP> У меня там окно обновляется пpостым pефpешем. RP> А как сделать, чтобы оно не мигало всё вpемя, а пpосто новые стpочки RP> добавлялись? Hапpимеp как на http://bizarre.kiev.ua/ Hужно использовать поточный HTML. В книжке "PHP4 Разработка Web-приложений" мельком упоминается: -- 8< --------------------------------------------------------------------- ...Эта технология никем не поддерживается официально, но тем не менее прекрасно работает. Сценарий интерфейсного вывода находится в ожидании в бесконечном цикле и не заканчивает передачу HTML-страницы, которую получает броузер. Информация, которую надо послать пользователю, выводится на экран и немедленно удаляется из буфера сервера. Таким образом, броузер при этом постоянно работает на вывод обновляемой информации и всегда выводит самые последние данные. Однако такой подход влечет за собой одну проблему ч сложные объекты HTML при этом невозможно интерпретировать в процессе работы, Ина летуК. Hапример, строки таблицы нельзя выводить по одной, потому что броузер должен получить все строки и столбцы таблицы, чтобы определить ее окончательный размер. Все хорошо работает, пока вы ограничиваетесь последовательным выводом текстовых строк и используете таблицы, которые можно вывести на экран сразу. Поточный HTML обладает одним свойством, которое можно считать и достоинством, и недостатком: поскольку соединение с клиентом остается открытым, постоянно должен существовать процесс сервера, который его обрабатывает. Это означает, что каждый клиент требует, чтобы, по крайней мере, один процесс сервера работал только с ним. Преимущество такого подхода заключается в том, что не нужно поддерживать никаких данных, связанных с конкретным обращением, то есть сеансом работы пользователя с данной страницей. Обычно, когда клиент запрашивает документ, должен порождаться новый процесс; необходимо загрузить, проанализировать и выполнить сценарий, генерирующий документ. Поскольку при использовании поточного HTML процесс сервера постоянно остается в памяти, загрузка сценария и его интерпретация должны осуществляться для каждого клиента только один раз. Для сайтов, которые в противном случае обрабатывали бы сотни обращений в секунду, это несомненное преимущество. Однако при этом каждый процесс остается в памяти резидентным и ему требуется оперативная память... ======================================= А реализация на PHP: for ($i=0;$i<=100;$i++) { echo "Line $i<br>\n"; flush(); sleep(5); } --------------------------------------------------------------------- >8 -- С уважением, Архипов Дмитрий. -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: SMTU (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/214843ef0861.html, оценка из 5, голосов 10
|