Chciałbym móc zezwolić użytkownikowi na przeglądanie wyników długotrwałego skryptu GCI, ponieważ jest on generowany, a nie po zakończeniu skryptu. Jednak nawet po wyraźnym opróżnieniu STDOUT serwer wydaje się czekać na zakończenie skryptu przed wysłaniem odpowiedzi do klienta. Jest to na serwerze Linux z uruchomionym Apache 2.2.9.Jak mogę obsługiwać niebuforowane treści CGI z Apache 2?
Przykład pyton CGI:
#!/usr/bin/python
import time
import sys
print "Content-type: text/plain"
print
for i in range(1, 10):
print i
sys.stdout.flush()
time.sleep(1)
print "Done."
Podobny przykład w Perlu:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
for ($i = 1; $i <= 10 ; $i++) {
print "$i\n";
sleep(1);
}
print "Done.";
Ten link mówi jak Apache 1.3 CGI wyjścia powinny być buforowane (ale to może mieć zastosowanie tylko do Apache 1.x): http://httpd.apache.org/docs/1.3/misc/FAQ-F.html#nph-scripts
Wszelkie pomysły?
Możesz również potencjalnie być uruchomiony do klienta (przeglądarki) -side kwestie buforujące. – Miles