2009-05-14 16 views

答えて

7

flush()を使用して出力バッファをフラッシュできます。

だから、何かのように:

taskOne(); 
echo 'Task one finished'; 
flush(); 
... 

・ホープ、このことができます。

+3

長いプロセスの場合は、set_time_limit()を使用して完了までに時間を割いてください。ユーザーが離れることができないほど長くなっている場合(ただし、とにかく終了する必要がある場合)、ignore_user_abort()を使用します。 –

+0

@Wezと@James:優れた点と解決策、ありがとうございます。 –

+2

また、ページにデータをフラッシュできないので、zlibまたはgzip圧縮を使用していないことを確認してください。 –

-1

PHPは各ページリクエストでのみ実行されるため、サイトを更新する必要があります。

header("Refresh: 3; URL=http://www.some.org/some.html");

ブラウザは、その後3秒後に更新されます:

+0

-1の理由:答えが間違っています。 – dmmd

+0

私の答えに何が間違っているかを詳しく説明できますか? –

+0

他の答えで指摘されているように、これはフラッシュや同様のコマンドで行うことができます。 – dmmd

1

たぶん、あなたはこのように、リフレッシュメタタグ、またはHTTPヘッダーを使用することができます。あなたが私に尋ねるなら、これはちょっとでもかまいません=)AJAXソリューションを含めるほうがはるかに良いかもしれませんが、あまりJavaScriptを使わなくても動作します。

1

あなたは、ajax経由でサーバーをポーリングする方がよいでしょう。実行中のタスクを監視し、それをポーリングできるスクリプトを設定します。こうすることで、ユーザーのブラウザは常に読み込みモードになっているわけではなく、ページから離れて必要な場合に戻ることができます。

関連する問題