URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6109
[ Назад ]

Исходное сообщение
"Вывод результатов работы скрипта на Веб-страницу потоком"

Отправлено Кон , 08-Дек-08 02:30 
Здравствуйте!
Помогите пожалуйста советом. Необходимо создать веб-страничку + CGI скрипт на Perl. На страничке должно отображаться текущее состояние работы скрипта: выводиться события как в консоль - последовательным списком.
Например:

#!c:/perl/bin/Perl.exe -T
use strict;
use CGI qw(:standard escapeHTML);

print "Content-type: text/plaintext\n\n";
for (my $i = 0; $i < 10; $i++)
{
    print "Some text $i\n\r";
    sleep 1;
}

Необходимо получить вывод такого скрипта не весь одним куском, а каждый print "Some text $i\n\r"; сразу после его выполнения.


Содержание

Сообщения в этом обсуждении
"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено angra , 08-Дек-08 05:13 
man perlvar
Ну или для убогих local $|=1

"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено Кон , 08-Дек-08 12:21 
>man perlvar
>Ну или для убогих local $|=1

Для убогих не работает!!! Все пачкой выдается



"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено Pahanivo , 08-Дек-08 13:14 
>>man perlvar
>>Ну или для убогих local $|=1
>
>Для убогих не работает!!! Все пачкой выдается

http работает по принципу "запрос-ответ", чисто http никак.
можно пробовать сваливать лог кудато в файл и показывать на страничке с автообновлением
либо жаваскриптом - но в этом не силен


"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено Кон , 08-Дек-08 13:19 
>http работает по принципу "запрос-ответ", чисто http никак.
>можно пробовать сваливать лог кудато в файл и показывать на страничке с
>автообновлением
>либо жаваскриптом - но в этом не силен

Попробую...



"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено angra , 09-Дек-08 02:00 
Вы забываете что ответ не обязательно должен быть полным, ничто не мешает выдавать браузеру в час по чайной ложке. Например следующий скрипт отрабатывает как раз 20 секунд и каждую секунду в бразуере(по крайне будет появлятся следующая цифра
#!/usr/bin/perl
use strict;
print "Content-type: text/html\n\n";
$|=1;
for (1..20) {
        print "$_
\n";
        sleep 1;
}

"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено Кон , 09-Дек-08 02:08 
>[оверквотинг удален]
>появлятся следующая цифра
>#!/usr/bin/perl
>use strict;
>print "Content-type: text/html\n\n";
>$|=1;
>for (1..20) {
>        print "$_
>\n";
>        sleep 1;
>}

Неа, всеравно через 20 секунд все вываливается одной пачкой...((((


"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено angra , 09-Дек-08 04:01 
Значит проблема на стороне веб-сервера или браузера, но это уже вам легче найти. Могу лишь подсказать идею вместо бразуера использовать netcat.

"Вывод результатов работы скрипта на Веб-страницу потоком"
Отправлено Pahanivo , 09-Дек-08 07:54 
>[оверквотинг удален]
>появлятся следующая цифра
>#!/usr/bin/perl
>use strict;
>print "Content-type: text/html\n\n";
>$|=1;
>for (1..20) {
>        print "$_
>\n";
>        sleep 1;
>}

это зависит от браузера - я в свое время точно такжен пытался сделать - нихера не вышло
толком