2

私はhttpリクエストの専門家ではないので、この質問は一部の人にとっては些細なことかもしれません。ファイルを処理して応答を返すのに時間がかかるphpスクリプトにリクエストを送信しています。このスクリプトがタスクを終了する前に応答を送信して、プロセスのステータスをユーザーに通知する方法はありますか?このタスクには数分かかることがあるので、プロセスの重要な部分が終了したときにユーザーに通知したいと思います。

注:このリクエストを他のいくつかに分割することはできません

私はここで正しいアプローチを持っていないかもしれません。もしそうなら、これをどのように扱うことができるか他のアイデアがありますか?

4

3 に答える 3

1

技術的にはそうですが、http-stackをきめ細かく制御する必要があります。これは、通常のphpセットアップではできる場合とできない場合があります。他の解決策を検討することをお勧めします(たとえば、タスクを開始するようにリクエストし、ポーリングして進行状況の最新情報を取得します)

于 2012-05-30T14:07:29.430 に答える
0

http://www.redips.net/javascript/ajax-progress-bar/

これは、phpで使用するプログレスバーajaxの作成について説明したすばらしい記事です。

意味がない場合はお知らせください。

于 2012-05-30T14:09:01.720 に答える
0

長いリクエストを処理するための最良の方法は、cron ジョブだと思います。「タスク」を作成するリクエストを送信し、cron ジョブでタスクをキャッチできます。cron ジョブは作業中にタスクのステータスを変更でき、インターバル リクエストを介してタスクのステータスを確認できます。リクエスト処理についてユーザーに通知する別の方法は想像できません。応答するとすぐにヘッダーが送信され、PHP が停止します。

編集: Cron ジョブは Linux サーバーでのみ利用できることに注意してください。Windows サーバーは、ほとんどの Web ホストが許可しないタスク スケジューラへのアクセスを必要とします。

于 2012-05-30T14:30:29.753 に答える