送信時にphpページ(sample.php)を呼び出すフォームがあります
私のphpページは多くの実行を行い、約5分かかります. 「実行済み!」も印刷しています。私のsample.phpページで。
この Executed は、すべてを実行した後 (5 分) にのみ印刷されます。
すべての処理を行う前に、php ページに「実行済み」と出力するようにします。
これについてどうすればいいですか?
ignore_user_abort()
ページがクライアントに配信された後、バックグラウンド作業を使用しflush()
て続行するソリューションがいくつか投稿されています。PHP Web サイトの接続処理に関するドキュメントを読み始める必要があります。
ただし、安定したソリューションを求める場合は、'sample.php' (フォーム アクション) が単にジョブを受け取り、それをキュー (おそらくデータベース テーブル) に追加して、仕事が追加されました。別のプロセスがバックグラウンドで実行され(おそらくcronごとなど)、ジョブ自体が実行されます。また、ジョブの進行状況を表示できる「progress.php」のようなページを作成します。応答は json などである可能性があるため、他のページに簡単に統合したり、要求された JavaScript プログレス バーのデータ フィードとして使用したりできます。