データベースのテーブルを埋めるために長い仕事をしています。このジョブは、完了するまでにさまざまな時間がかかる場合があります。だから、プログレスバーが必要です。ページを数えるだけで十分です。私がいくつかの解決策を見つけた限り:
- _SESSION を使用します。OK、私が使用したほとんどのサーバーで動作しますが、クロムでの ERR_RESPONSE_HEADERS_TOO_BIG エラーに関する多くの問題があり、ループで呼び出された session_start/session_write_close が原因で、一部のサーバーで「ヘッダーが既に送信されました」という問題が発生することがあります。私はこの方法が好きでしたが、今では拒否しています
- 長い操作のループ内で一種の ob_start/ob_end_flush を使用します。これはうまくいきません。スクリプトの終了後にバッファリングされたすべてのエコーされたメッセージを表示するだけです。
- db を使用して共有変数を格納する (まだ試していません)
- 別の (一時) ファイルを使用します。(まだ試していません)。
私はすでにインフラストラクチャを実装しています: 長いジョブ (db にテーブルを作成する) 用のスクリプトと、進行状況を含む共有変数を読み取るために JS によって使用される別のスクリプトです。これらのスクリプトは両方とも、結果が .done 関数になることを期待して jQuery .ajax メソッドで呼び出しました。
他の方法はありますか?4) バリアントを使用したいようですが、プログレス バーを実装するための通常の方法を知りたいです。
ありがとう:)