The OpenNET Project / Index page

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

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

"вывод из CGI не закрывая соеденения"
Сообщение от Dias emailИскать по авторуВ закладки on 02-Апр-02, 20:33  (MSK)
Доброе время суток.
Возникла следующая проблема:
как мне из CGI-cкрипта (например на перле) выводить текст в браузер, так чтобы, во-первых: текст отображался сразу как только выполнится соответствующая команда print; во-вторых: чтобы браузер не отваливался по тайм-ауту сколь долго бы не было вывода из CGI.
Так реализовано в gtchat'е вот только его нет в исходниках.
Заранее благодарен.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: вывод из CGI не закрывая соеденения"
Сообщение от uldus Искать по авторуВ закладки on 03-Апр-02, 10:17  (MSK)
>так чтобы, во-первых: текст отображался
>сразу как только выполнится соответствующая
>команда print;

$|=1; # поставить в начале скрипта.

>во-вторых: чтобы браузер
>не отваливался по тайм-ауту сколь
>долго бы не было вывода
>из CGI.
>Так реализовано в gtchat'е вот только
>его нет в исходниках.

Вероятно стоят ограничения в апаче, например, у меня скриптам пользователей не разрешено выполняться более 1 мин.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: вывод из CGI не закрывая соеденения"
Сообщение от Dias emailИскать по авторуВ закладки on 03-Апр-02, 11:28  (MSK)
>>так чтобы, во-первых: текст отображался
>>сразу как только выполнится соответствующая
>>команда print;
>
>$|=1; # поставить в начале скрипта.

cтавил, не помогает. но и IMHO, это для вывода в файл

>
>>во-вторых: чтобы браузер
>>не отваливался по тайм-ауту сколь
>>долго бы не было вывода
>>из CGI.
>>Так реализовано в gtchat'е вот только
>>его нет в исходниках.
>
>Вероятно стоят ограничения в апаче, например,
>у меня скриптам пользователей не
>разрешено выполняться более 1 мин.
>
дык сам браузер отваливается даже если нет ограничения, может ему какое волшебное слово надо сказать в заголовке HTTP-ответа...


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: вывод из CGI не закрывая соеденения"
Сообщение от uldus Искать по авторуВ закладки on 03-Апр-02, 15:25  (MSK)
>>$|=1; # поставить в начале скрипта.
>
>cтавил, не помогает. но и IMHO,
>это для вывода в файл

STDIN/STDOUT тоже есть "файл". Значит не так или не там ставил.

>дык сам браузер отваливается даже если
>нет ограничения, может ему какое
>волшебное слово надо сказать в
>заголовке HTTP-ответа...

Разве что поставить:
Cache-Control: no-cache
Pragma: no-cache

Браузер не отваливается, если соединение не разорвано, специально проверил перед отправкой сообщения - минут 30 минимум провисел:

#!/usr/local/bin/perl
$|=1;
print "Cache-Control: no-cache\n";
print "Pragma: no-cache\n";
print "Content-type: text/plain\n\n";
while (1){
    print "test\n";
    sleep 1000;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: вывод из CGI не закрывая соеденения"
Сообщение от Dias emailИскать по авторуВ закладки on 03-Апр-02, 16:31  (MSK)
>>>$|=1; # поставить в начале скрипта.
>>
>>cтавил, не помогает. но и IMHO,
>>это для вывода в файл
>
>STDIN/STDOUT тоже есть "файл". Значит не
>так или не там ставил.
>
>
>>дык сам браузер отваливается даже если
>>нет ограничения, может ему какое
>>волшебное слово надо сказать в
>>заголовке HTTP-ответа...
>
>Разве что поставить:
>Cache-Control: no-cache
>Pragma: no-cache

вот что мне помогло:
HTTP/1.0 200 Okay

вот только пришлось скрипту дать имя начинающееся с nph
думал это в апачевских конфигах задается, но не нашел в них даже упоминания про nph :(


вот сейчас смотрю как это будет выглядеть через прокси.....
>Браузер не отваливается, если соединение не
>разорвано, специально проверил перед отправкой
>сообщения - минут 30 минимум
>провисел:
>
>#!/usr/local/bin/perl
>$|=1;
>print "Cache-Control: no-cache\n";
>print "Pragma: no-cache\n";
>print "Content-type: text/plain\n\n";
>while (1){
>    print "test\n";
>
>    sleep 1000;
>
>}


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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