- PR -

Apache+perlで処理結果をリアルタイムに表示したい

1
投稿者投稿内容
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-03-12 19:35
ApacheのCGIとしてPerlを使用して、
処理結果をリアルタイムに表示したいのですが、
処理をすべて終了した時に表示されてしまいます。

この様なことをやりたいです。
http://www.abuse.net/relay.html

この様なスクリプトで試しています。
print "<html><body>";
print "<div>1</div>";
sleep 5;
print "<div>2</div>";
sleep 5;
print "<div>3</div>";
sleep 5;
print "</body></html>";

↑の例だと、sleepで止まっている間に、1,2,3と表示したいのですが、
全て待って、一度に表示されてしまいます。

また、Apacheの設定はデフォルト値(debian sargeでapahce 1.3をインストしただけ)
を使用しています。

どうぞ、よろしくお願いします。

あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2007-03-12 20:45
こんばんは。

コード:

$|=1;
#$は半角に直してください。



を頭に宣言してどうでしょうか?

詳細は、[perl バッファリング]あたりでぐぐれば幸せになれるかもしれません。

#BB コード書き間違えました。。。

[ メッセージ編集済み 編集者: あるかな 編集日時 2007-03-12 20:48 ]
Ay
常連さん
会議室デビュー日: 2006/10/29
投稿数: 45
投稿日時: 2007-03-12 23:44
こんばんわ。

出力するデータサイズが少ないと、バッファリングを抑制しても一度に表示されてしまうかもしれません。
http://www.jp-z.jp/perlmemo/cgi_cgi_buffering.html

sleep する前に、ある程度(半角スペース1KByte分とか)のprintを入れるとうまくいくかも…
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-03-13 00:00
あるかなさん

かなり幸せになりました。夢が膨らみます。


Ayさん

1バイトでも、表示できました。実際作るのは、もうちょっとデータ量あるので
問題ないと思います。
1

スキルアップ/キャリアアップ(JOB@IT)