Печать CGI до выхода из процесса - PullRequest
0 голосов
/ 07 февраля 2011

Мне известна другая тема, связанная с этой проблемой, моя проблема в том, что предлагаемое решение не сработало для меня.Это тестовый скрипт, который я использую:

#!/usr/bin/perl -sW
use CGI::Carp qw( fatalsToBrowser );
use CGI qw/:standard/;
use 5.12.0;

my $q = CGI->new;

$|++;
print $q->header('text/html');

print 0;
sleep(2);
print 1;
sleep(5);
print 2;
exit;

И даже при автоматическом истечении true все выходные данные буферизуются и выводятся только после завершения выполнения скрипта.Есть идеи, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Что произойдет, если вы запустите это из оболочки?

Это зависит от того, как веб-сервер обрабатывает CGI.Некоторые буферизируют все это, чтобы обеспечить точное Content-Length.В моей недавней памяти Apache не выполняет буферизацию (хотя, возможно, раньше).

Настройте веб-сервер на использование непарсированных заголовков , которые будут перекачивать данные по мере доступности.

1 голос
/ 07 февраля 2011

Ух ты, это глупо, похоже, что у Chrome в Linux действительно есть своя собственная буферизация вывода.Я протестировал идентичный скрипт в Firefox, и он работает ... Спасибо всем за помощь, хотя!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...