On Tuesday 31 May 2005 06:23, Foo Ji-Haw wrote: > If I am not mistaken, modperl tends to cache all output until the script > is completed, then it sends out the page. If I want to (for example) > print a period (.) back to the browser every second, what do I need to > do? I tried $| but it does not work.
My handler looks this:
package My::Content;
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Const -compile=>qw(OK);
sub handler {
my $r=shift;
$r->content_type( 'text/html' );
for( my $i=0; $i<10; $i++ ) {
$r->print( time."\n" );
$r->rflush;
sleep 1;
}
$r->print( "\n" );
return Apache2::Const::OK;
}
and here is what it sends every second one line as expected:
[EMAIL PROTECTED]:~> telnet localhost 8081
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /mp2-handler HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 31 May 2005 09:24:41 GMT
Server: Apache/2.0.54 (Unix) mod_perl/2.0.0 Perl/v5.8.5
Connection: close
Content-Type: text/html
1117531481
1117531482
1117531483
1117531484
1117531485
1117531486
1117531487
1117531488
1117531489
1117531490
Connection closed by foreign host.
It work with simple dots as well.
Torsten
pgpBNa8KkFDKI.pgp
Description: PGP signature
