From 235037baa563f4ad7c09723fc8dfd14d31020fe1 Mon Sep 17 00:00:00 2001 From: Patrick Donelan Date: Fri, 19 Jun 2009 02:02:20 +0000 Subject: [PATCH] ProgressBar tweaks Output skips macro processing Modperl buffering is side-stepped ($|++) Modproxy buffering is side-stepped (output size) Javascript extensibility --- lib/WebGUI/ProgressBar.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/WebGUI/ProgressBar.pm b/lib/WebGUI/ProgressBar.pm index 14a35509c..a8dd0c0df 100644 --- a/lib/WebGUI/ProgressBar.pm +++ b/lib/WebGUI/ProgressBar.pm @@ -82,8 +82,8 @@ sub finish { parent.location.href='%s'; EOJS - $self->session->output->print($text . $self->{_foot}); - return 'redirect'; + $self->session->output->print($text . $self->{_foot}, 1); # skipMacros + return 'chunked'; } #------------------------------------------------------------------- @@ -125,8 +125,9 @@ sub start { my $template = WebGUI::Asset::Template->new($self->session, 'YP9WaMPJHvCJl-YwrLVcPw'); my $output = $self->session->style->process($template->process(\%var).'~~~', "PBtmpl0000000000000137"); my ($head, $foot) = split '~~~', $output; + local $| = 1; # Tell modperl not to buffer the output $self->session->http->sendHeader; - $self->session->output->print($head); + $self->session->output->print($head, 1); #skipMacros $self->{_foot} = $foot; return ''; } @@ -148,13 +149,16 @@ sub update { my $message = shift; ##JS string escaping? $self->session->log->preventDebugOutput; $self->{_counter} += 1; + + my $modproxy_buffer_breaker = 'BUFFER BREAKER ' x 1000; my $text = sprintf(<{_counter}, $message); - EOJS - $self->session->output->print($text); + local $| = 1; # Tell modperl not to buffer the output + $self->session->output->print($text, 1); #skipMacros if ($self->{_counter} > 600) { $self->{_counter} = 1; }