人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在、PHPでWEBサイトを作成しています。その中でページを表示させるのに非常に時間がかかるページがあります。画像が重いというのではなく
サーバ側での検索処理の時間がかかるものです。時間は10?20秒程度でこれは変更できないとします。
そこで、その待ち時間にプログレスバーなどを表示させて「待っていること」、「処理が進んでいること」を明示的にわからせようとしています。
PHPでプログレスバーなどを作るのは可能なのですが、100%に達した後にそのプログレスバーを表示させていた場所に検索結果を表示させるとなると
ページをリロードなどをして消さなければなりません(よね?)できればIFRAMEは使用したくありません。
そこで一般的に皆さんがどうしているのかをお聞きしたいのと、詳しく説明しているページなどがありましたら教えていただきたく、質問させていただきました。
よろしくお願いします。

●質問者: kamesann
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP webサイト にわか サーバ プログレスバー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Sampo
●27ポイント

私なら、プログレスバー部分をdivで括っておいて、body要素のonLoadでそのdivを隠してしまいます。

◎質問者からの返答

早速のご回答ありがとうございます。

なるほど。

こんな方法があるんですね。

是非ためしてみます。


2 ● nev
●27ポイント

画面自体はすぐに「waiting...」みたいなページを表示します。

検索処理はforkして別プロセスにやらせておきます。

waiting...の画面(HTML)には、一定時間毎にサーバに検索処理が完了したか確かめに行くようなjavascriptをAjaxぽく埋め込んでおきます。完了していたら、画面を完了に書き換えるか、完了と表示されるような画面にリダイレクトしてやります。

サーバ側はjavascriptからのアクセスの受け皿が必要です。検索処理が完了しているかどうかをクライアントに返してやるような処理です。

こんな感じで分かりますでしょうか。

◎質問者からの返答

ありがとうございます。

サーバとページで処理を平行してやらせておく方法、理解できました。

>画面を完了に書き換えるか

これはjavascriptで書き換える感じなのでしょうか?


3 ● b-wind
●26ポイント

Ajax で終了検知。プログレスの表示自体を JavaScript で消してしまうのが今流なんでしょうね。


自分は古いので meta タグの Refresh でリロードさせてしまいますが。

◎質問者からの返答

JavaScript or Refresh 普段JavaScriptを使用していないので表示が消せるというのがわかっただけでも大きいです。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ