Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2011, 22:27   #1
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию отображение данных

Здравствуйте. Пишу CGI программу под Apache.. меня интересует, как можно правильно организовать передачу текста "порциями", при этом держа связь? что-то вроде чата.. я проверял так

printf("тест <br>");
Sleep(1000);
printf("тест <br>");

потом пробовал оформлять текст таблицами и т.п., но браузер ждет, пока программа завершится, и затем отображает сразу весь текст.

Последний раз редактировалось Артэс; 20.07.2011 в 22:44.
Артэс вне форума Ответить с цитированием
Старый 22.07.2011, 08:08   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Используйте ajax
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 22.07.2011, 10:12   #3
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Но есть же и другой способ, без Java скриптов, более простой.
К примеру, у меня в браузере отключен JavaScript, но информация в чате так же "добавляется". При этом, соединение не прерывается, а все время присутствует (страница все еще загружается).

Надо как-то сделать, чтобы браузер отобразил уже загруженное. Ведь, когда загружается большая страница, она частями отображается по мере загрузки (не изображения, а сам html текст), а не сразу вся готовая, я такое как-то раз наблюдал, когда подключение к интернету лагало.

Последний раз редактировалось Артэс; 22.07.2011 в 10:17.
Артэс вне форума Ответить с цитированием
Старый 22.07.2011, 10:52   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Не думаю, что это возможно. Может есть пример? С чего вдруг браузер будет отображать контент, не имея полного ответа от сервера?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 22.07.2011, 11:08   #5
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

www.games.ru/chat

видел такой чат. Вход без регистрации. Пользовался Internet Explorer'ом с выключенным JavaScript.
Артэс вне форума Ответить с цитированием
Старый 22.07.2011, 11:55   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

смотрите HTTP протокол, а не HTML.

http://ru.wikipedia.org/wiki/Chunked_transfer_encoding
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.07.2011, 14:22   #7
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Круто! Благодарю. Попробуем
Артэс вне форума Ответить с цитированием
Старый 22.07.2011, 14:45   #8
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Нашел пример в английской Википедии, попробовал сделать сам:
Код:
printf("Content-Type: text/html; charset=windows-1251\r\nTransfer-Encoding: chunked\r\n\r\n");
printf("7\r\nabc<br>\r\n\r\n");
Sleep(1500);
printf("3\r\nend\r\n\r\n");
CGI в консоли выдает следующее:
Код:
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked

7
abc<br>

3
end
Вроде все правильно, а самый первый заголовок "HTTP/1.1 200 OK" добавляет Апач.
Но браузер ждет, пока CGI программа не завершится, и в итоге ничего не отображает. Может Апач еще и Content-Length добавляет, потому и не работает?
Артэс вне форума Ответить с цитированием
Старый 22.07.2011, 15:30   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так проверьте снифером.

и так же посмотрите как тот чат работает.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.07.2011, 17:49   #10
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Какой посоветуете?

Последний раз редактировалось Артэс; 22.07.2011 в 17:56.
Артэс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение данных sid1868 Помощь студентам 0 29.05.2011 12:55
Отображение данных Waaper БД в Delphi 2 23.05.2011 16:16
отображение данных в Stringgrid Максон11 Помощь студентам 0 06.04.2011 12:44
отображение в GRID'е данных Barbara Общие вопросы Delphi 2 13.02.2007 23:39