処理に異常な時間がかかる可能性のあるiframeラッパーのPOSTを介していくつかのファイルをアップロードしています。
そして、iframeのonloadイベントによってキャプチャされる結果を出力する前に、アップロードが終了し、処理が開始されたことをユーザーに何らかの方法で知らせたいと思います。
そうしないと、ユーザーは長時間の待機に混乱する可能性があります。
最初のメッセージを表示し、完了したら別の行を追加して、出力されたページのコンテンツをiframeで比較することを考えていました。しかし、このアプローチは何らかの理由で機能しません。
例:
print 'processing started';
for ($i=0; $i < 10; $i++) {
echo '...still processing';
sleep(1);
}
echo 'done';
(「処理が開始されました」というメッセージが表示され、読み込みが完了すると「完了」が表示されることを期待していますが、10秒間待機した後、1回のバーストで吐き出されます)。
だから私はこれをどのように行うことができるのだろうか?
私が持っていたもう1つの考えは、ページの最初にリダイレクトヘッダーを設定することでした。そのため、ファイルがアップロードされると、別のページにリダイレクトされ、そこで処理が行われます。次に、リダイレクトと最終応答をキャプチャしてみます。
しかし、それはちょっと奇妙な方法です。送信されたパラメータを渡し、アップロードされたファイルを一時フォルダのどこかに移動する必要があるため、phpスクリプトが出力された後は削除されません。
...それで、私がやろうとしていることを行うためのより良いアプローチがあるのだろうか?