クライアントごとにレポートを表示することになっているシステムを開発しています。これらのレポートは、実際のレポートを表示する前に事前の計算を行う必要があります。
計算プロセスは面倒で時間がかかる場合があり、レポートが使用するデータが更新される場合があるため、ユーザーはそれらのレポートを再計算できる必要があります。これらの理由から、レポートを生成するスクリプトは、実際にレポートを表示するスクリプトから分離されています。
要するに、私は 2 つのスクリプトを持っています。それらが「generateReport.php」と「showReport.php」と呼ばれているとしましょう。
ユーザーがクライアントをクリックしてレポートを表示すると、'showReport.php' は、必要なデータが既に生成されているかどうかをチェックし、生成されている場合はレポートを表示します。データがそこにない場合、ブラウザを「generateReport.php」に転送し、終了すると、ブラウザを「showReport.php」に転送します
問題は、ユーザーが 2 つのクライアントをクリックし、両方ともデータを生成する必要がある場合に発生します。
最初にクリックされたクライアントは「generateReport.php」に到達し、そこでユーザーはプロセス全体を知ることができるバーを確認できます。2 番目のクライアントが生成されるページはそのまま待機します。
最初のクライアントに時間がかかりすぎると、2 番目のクライアントは明らかにタイムアウトになり、そこにとどまります。
同じブラウザーの 2 つのタブで同じ php ('generateReport.php') を実行しているため、Apache は両方の要求を同時に処理しないことを理解しています。 ) タイムアウトしないウィンドウ?
注: 「generateReport.php」と「showReport.php」には set_time_limit(0) があります。テストのためだけに、明らかに何もしません。
注 2: ホスティング環境で php.ini にアクセスできます
注 3: 長文/退屈なテキスト投稿で申し訳ありません
事前にサンクス!
EDIT1:
ツイスティーさん、お返事ありがとうございます。
- 要求は、ユーザーがアンカー タグをクリックすることにより、HTTP GET によって生成されます。
- header("Location: ...") は、ユーザーを generateReport から showReport に移動するために使用されます。
- はい、ブラウザのタブについて言及していました。