The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Вывод данных в Web через CGI-perl по мере поступления данных"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от jr email(ok) on 23-Апр-07, 12:57 
Есть некий скрипт, который во время своей работы постепенно (построчно) выводит информацию в STDOUT. Работать скрипт может достаточно долго, и если его вывод просто обернуть в CGI через perl, то пользователь, щелкнув на ссылку скрипта, будет очень долго ждать пока скрипт полностью завершит работу. Как сделать вывод в WEB так же постепенно (построчно), по мере поступления результатов работы скрипта в STDOUT?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от cat (??) on 23-Апр-07, 17:20 
>Есть некий скрипт, который во время своей работы постепенно (построчно) выводит информацию
>в STDOUT. Работать скрипт может достаточно долго, и если его вывод
>просто обернуть в CGI через perl, то пользователь, щелкнув на ссылку
>скрипта, будет очень долго ждать пока скрипт полностью завершит работу. Как
>сделать вывод в WEB так же постепенно (построчно), по мере поступления
>результатов работы скрипта в STDOUT?

#!/usr/bin/perl
use strict;
$|=1;#Вот это напишите в начале скрипта

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от jr email(??) on 23-Апр-07, 17:26 
>#!/usr/bin/perl
>use strict;
>$|=1;#Вот это напишите в начале скрипта

Все это есть... Разобрался в чем дело.
Браузер (IE) не показывает информацию сразу, а хранит ее в своем буфере до определенного размера. Пробовал на другом браузере (не помню точно какой, вроде Firefox) - там все нормально отображается сразу в момент поступления данных.
Вот как ему (IE) сказать, чтобы он сразу рендерил то, что ему приходит? Там не хитрый html и его можно сразу показать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от A on 23-Апр-07, 18:24 
>>#!/usr/bin/perl
>>use strict;
>>$|=1;#Вот это напишите в начале скрипта
>
>Все это есть... Разобрался в чем дело.
>Браузер (IE) не показывает информацию сразу, а хранит ее в своем буфере
>до определенного размера. Пробовал на другом браузере (не помню точно какой,
>вроде Firefox) - там все нормально отображается сразу в момент поступления
>данных.
>Вот как ему (IE) сказать, чтобы он сразу рендерил то, что ему
>приходит? Там не хитрый html и его можно сразу показать.

Почанкать всё

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от jr email(??) on 23-Апр-07, 18:27 
>Почанкать всё


хм... что сие означает и как и где это применять?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от A on 24-Апр-07, 09:02 
>>Почанкать всё
>
>
>хм... что сие означает и как и где это применять?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html

3.6.1 Chunked Transfer Coding

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от A on 24-Апр-07, 09:11 
на самом деле, не надо питать иллюзий. вы никогда не можете быть уверены, что клиент получает ваш документ по частям, потому, что существуют различные прокси и ПО выполняющее функции прокси. даже если вы отдаёте с сервера по частям, конечный клиент может получать данные непредсказуемым образом.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от jr email(??) on 24-Апр-07, 09:28 
>на самом деле, не надо питать иллюзий. вы никогда не можете быть
>уверены, что клиент получает ваш документ по частям, потому, что существуют
>различные прокси и ПО выполняющее функции прокси. даже если вы отдаёте
>с сервера по частям, конечный клиент может получать данные непредсказуемым образом.
>

Ну, в принципе, я уже понял, что на это расчитывать не стоит, но все-равно спасибо!
А вообще, какие есть методы реализации отображения информации в окне браузера клиента по мерее ее поступления?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Вывод данных в Web через CGI-perl по мере поступления данных"  
Сообщение от A on 24-Апр-07, 10:47 
>А вообще, какие есть методы реализации отображения информации в окне браузера клиента
>по мерее ее поступления?

с давних пор самым (на мой взгляд) надёжным и общепризнанным был метод передачи не самого html, а javascript-кода document.write('html-код'). это заставляет браузер отобразить код, а не кэшировать его. такой метод использовался в древних чатах типа краватки, куличиков, болота... он отлично себя зарекомендовал ещё лет 10 назад. но тут возникают теже проблемы с проксями, всякими умными антивирусами, баннерорезками и прочей мишурой, которую устанавливают и пользователи и провайдоры.

сейчас (я полагаю) лучше использовать Ajax. это не совсем то, о чём вы спрашивали, но возможно вашу задачу можно переформулировать в Ajax-терминах. Ajax это железно :-) изменение страницы в нужный момент и желаемом объёме вам гарантировано.

вот мои примерчики:
http://michurin.com.ru/online-war.shtml (сервер генерит XML; ортодоксальный подход)
http://michurin.com.ru/online-nim.shtml (сервер генерит просто необходимые куски HTML-кода; это не совсем Ajax-идеалогически правильно, но, возможно, ближе к вашей задаче)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру