サーバ側での検索処理の時間がかかるものです。時間は10~20秒程度でこれは変更できないとします。
そこで、その待ち時間にプログレスバーなどを表示させて「待っていること」、「処理が進んでいること」を明示的にわからせようとしています。
PHPでプログレスバーなどを作るのは可能なのですが、100%に達した後にそのプログレスバーを表示させていた場所に検索結果を表示させるとなると
ページをリロードなどをして消さなければなりません(よね?)できればIFRAMEは使用したくありません。
そこで一般的に皆さんがどうしているのかをお聞きしたいのと、詳しく説明しているページなどがありましたら教えていただきたく、質問させていただきました。
よろしくお願いします。
画面自体はすぐに「waiting...」みたいなページを表示します。
検索処理はforkして別プロセスにやらせておきます。
waiting...の画面(HTML)には、一定時間毎にサーバに検索処理が完了したか確かめに行くようなjavascriptをAjaxぽく埋め込んでおきます。完了していたら、画面を完了に書き換えるか、完了と表示されるような画面にリダイレクトしてやります。
サーバ側はjavascriptからのアクセスの受け皿が必要です。検索処理が完了しているかどうかをクライアントに返してやるような処理です。
こんな感じで分かりますでしょうか。
ありがとうございます。
サーバとページで処理を平行してやらせておく方法、理解できました。
>画面を完了に書き換えるか
これはjavascriptで書き換える感じなのでしょうか?
Ajax で終了検知。プログレスの表示自体を JavaScript で消してしまうのが今流なんでしょうね。
自分は古いので meta タグの Refresh でリロードさせてしまいますが。
JavaScript or Refresh 普段JavaScriptを使用していないので表示が消せるというのがわかっただけでも大きいです。
ありがとうございます。
早速のご回答ありがとうございます。
なるほど。
こんな方法があるんですね。
是非ためしてみます。