私はPHPでいくつかの重い画像の操作をしていると私は物事がどのように進行しているかを示したいと思います。だから私はこのような何かをやってみました:セッションを使用して重いPHPの進行
for($i = 0; $i < $rowCount; $i++) {
session_start();
$_SESSION['progress'] = $i/ $rowCount;
session_write_close();
processLine($i);
}
をそして私は、AJAXは基本的に$ _SESSION [「進歩」]の値を返す別のphpファイルへの呼び出しを使用しています。問題は、設定されていません。これはファイルごとにセッションを2回以上開始すべきでないためですか?セッションを開いて各行間を閉じないと、SESSION変数がロックされ、画像操作全体が完了するまで私のポーリングファイルは処理されません。
セッションを使用してこれを動作させる方法はありますか?データベースやファイルに進捗状況を書き込むとうまくいくかもしれませんが、遅いですし、ipsやセッションIDを使用してユーザーを特定するための作業が必要になります。セッションを使用すると、これらのことが処理されます。
そうですが、私はそれが問題であると考えていましたので、そのプロセスでセッションのロックを解除できないので、他のプロセスが進捗状況をチェックするために使用できますか? – marcusklaas
いいえ、例えば、処理中のイメージ名の後ろに名前をつけた一時ファイルを作成し、その一時ファイルに進行状況を保存すると、Ajaxはanotにアクセスする必要がありますcheckstatus.php?f = filename – Dmitri
また、memcacheを使用すると、進行状況をmemcacheに保存する方がずっと速く、速くても、一時ファイルを使用するよりも速くなります。 – Dmitri