- - PR -
画面遷移時に時間がかかる時の画面のあり方
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-01-22 14:57
毎々お世話になっております。
題記の件、画面遷移に時間がかかる時、みなさんはどのような 方法で画面を遷移しているのでしょうか? 検索画面でボタンを押下時、そのActionで データベースからデータを検索していきます。 検索する時に、データ数が多いと当然時間が生じます。 画面上では、真っ白になるか、検索画面が固まった状態になると思います。 その固まるまたは真っ白画面ではなく、 IEのタスクバーに処理経過を表示するオブジェクト? (時間とともに□□って増えていく奴です。) のようなものを画面に表示できたらいいなって 思っているのですが、そんな事は可能でしょうか? | ||||
|
投稿日時: 2005-01-22 17:25
端からJavaとは無関係な話題を連投というのは如何なものかと思いますが、、
そもそもプログレスバー的なものっていうのは進捗状況を報告するために存在 しているわけであって、サーバでの処理の進捗を随時クライアントへ通達するの ならばいざ知らず、単に待ち画面の代わりで表示する代物ではないと思います。 正確な処理時間を予め予想できるというのであれば構いませんが、そうでない場合 多々誤解を生む無責任なアニメーションという事になります。 どうしても処理待ち状態である事をクライアントに伝えたいのであれば、 只今、データベースから対象を検索しております。しばらくお待ち下さい。 といったメッセージを表示するHTMLを送れば良いだけな気がします。 そのメッセージが文字列か画像(アニメーションGIF含む)かはお好みで。 | ||||
|
投稿日時: 2005-01-22 23:46
返答ありがとうございます。 「只今、データベースから対象を検索しております。しばらくお待ち下さい。」 のようなメッセージを一言出したいのです。 ただ、真っ白または画面が固まるよりは、使う側は理解しやすいと おもったもので。 現状: 検索画面 → ボタン押下 → Action(データベースから検索) → 検索結果画面 のようなプロセスになると思います。 上記のような処理中であるメッセージを表示する場合、 検索画面 → ボタン押下 → 処理中メッセージ画面 → (処理中メッセージ画面のJScript)→ Action(データベースから検索) → 検索結果画面 しか思いつきません。 検索画面とActionの間に、処理中メッセージ画面を 入れる設定をしなければいけないのかと思うと 画面数からして手間が少々かかりすぎるなっておもっていたので。 | ||||
|
投稿日時: 2005-01-23 02:21
具体的に「何処で」「どのような」手間をかけようとしているのかは分かりませんが、 何にせよ、この機能を実現する為には変更無しというわけにはいきませんよね。 「JSP/ServletでHTMLを書き出す」「HTMLファイルに直接記述する」のどちらにせよ 最終的には何らかの形(外部ファイル含)HTMLに埋めこまなければなりません。 ステップとしては、クライアント側のスクリプトがONであるという前提が可ならば、、 document.write() でも使用して直接ユーザエージェントで待ち画面を描画し負荷を減らす方法を採択する。 OFFの可能性も考えるなら、メッセージ画面の為に1回多くサーバとの応答を増やす。 って事になるのではないでしょうか。 | ||||
|
投稿日時: 2005-01-23 17:37
フレームを使用可能な状態であれば、
処理用の可視領域が0のフレームと表示用のフレームを分け、 1・表示用のフレームで処理のボタン押下 2・表示用のフレームに「処理中」をdocument.writeやinnerHTML等で出力 3・処理用のフレームに対してサブミット 4・処理用のフレームで処理完了後のwindowのonloadイベントで 表示用フレームの処理中表示を消すなり、表示用フレームの画面を遷移させる という方法もあります。 いまさらフレーム分けできないという場合でも、 非表示のiframeを使用することで代用は可能です。 IE限定になってしまいますが・・・ | ||||
|
投稿日時: 2005-01-24 18:54
最初の数十件の検索が終わった段階で一旦出せるところまでHTMLを出力すればどうですか?
ブラウザやテーブルタグを使用している場合NGな時もありますが。 もしくは、時間をかからないような画面設計にするとか。 (ページ当りの表示件数を制限する) | ||||
|
投稿日時: 2005-01-26 23:06
返答が遅くなってしまいました。
アドバイスをくれた方ありがとうございます。 いろいろ試している段階でが、当面の目的は果たしました。 今後も、フレームワークの使い方とかで 効率さを求めて生きたいと思います。 | ||||
1
