- PR -

「実行中・・・」や「検索中・・・」を表示させるには

投稿者投稿内容
iiz
会議室デビュー日: 2002/11/19
投稿数: 8
投稿日時: 2003-05-14 17:36
VS.NETで作成したWebフォーム上でバッチ系処理や
DBを検索中に「実行中・・・」や「検索中・・・」と
いった点滅したテキストを持つメッセージボックス
(Webフォーム上のラベルも可)を表示させるには
どうしたらいいでしょうか。

過去のスレッドにあったとしたら、どこを参照すれば
良いでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-05-15 09:36
こんにちは。
引用:

iizさんの書き込み (2003-05-14 17:36) より:
VS.NETで作成したWebフォーム上でバッチ系処理や
DBを検索中に「実行中・・・」や「検索中・・・」と
いった点滅したテキストを持つメッセージボックス
(Webフォーム上のラベルも可)を表示させるには
どうしたらいいでしょうか。


 やりたいですねぇ・・・つまり、私もできていません。


 Webフォームでも、クライアントサイドでやるなら、JavaScriptとかで実現できることはわかっています。私はサーバサイドの処理をやりたかったのですが、サーバで長い時間がかかり、その間応答を返さなければクライアントが勝手に「エラー」と判断してしまいます。
そこで、スレッドを分け、いったんはクライアントに応答を返し、もう一つのスレッドで処理を実行すればいいだろう、と思っています。ここで問題なのが、実行スレッドの結果をどうやってクライアントに返すか、というところです。

 いま、改造中のシステムでは、ユーザには「後でお知らせします」と返し、実行スレッドの終了後にメールで結果を送信しようか、と思っています。


 もう一つ、非同期通信というのもあるが、それがどう使えるのか、わかりません。

 もう一つ、定期的にクライアントがサーバに処理の終了を尋ねる、というてもあるかなぁと、今思いつきました。
未記入
ベテラン
会議室デビュー日: 2002/09/10
投稿数: 68
投稿日時: 2003-05-15 11:57
<meta http-equiv="refresh">
を使ってそれらしいことはできるようです。

画面遷移を、

検索条件入力 → 待機画面 → 検索結果表示

として、
待機画面で「お待ちください...」と表示してから
<meta http-equiv="Refresh" content="1;URL=xxxxx.aspx">
とかで検索結果表示画面に飛ばします。
待機画面と検索結果表示画面は
ひとつのページを動的に切り替えて使ってもいいんですけどね。

[ メッセージ編集済み 編集者: 通常の名無しさんの3倍 編集日時 2003-05-15 11:59 ]
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-05-15 11:59
私も無理っぽいと思っていたのですが、できます。
(ASP.NET Mailing Listで知りました。)

最初の画面(first.aspx)から(wait.htm)に遷移させます。
wait.htmには、「お待ち下さい」の表示をして、
META Refreshに、結果の画面(result.aspx)を指定します。

result.aspxの処理に時間がかかっても、クライアントでは
その間、wait.htmが表示されることになります。

お試し下さい。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-05-15 12:39
かぶった。
iiz
会議室デビュー日: 2002/11/19
投稿数: 8
投稿日時: 2003-05-15 15:37
Jittaさん、通常の名無しさんの3倍さん、catsさん、ありがとうございました。
まだ試作中ですが、先にお礼を申しあげます。

質問の内容が抽象的でしたが、実は「バッチ処理」というのがPDF作成のことを指して
おり、最終的にPDFの表示で終わるアプリを作っています。PDF名は重複しないように
動的に変わります。そうなると待機中画面に
<meta http-equiv="Refresh" content="1;URL=xxxxx.pdf">
をアプリ(私の場合C#ですが)で埋め込んでやるしかないと思うのですが、これは可能なんで
しょうか。

[ メッセージ編集済み 編集者: iiz 編集日時 2003-05-15 15:38 ]

[ メッセージ編集済み 編集者: iiz 編集日時 2003-05-15 15:39 ]
未記入
ベテラン
会議室デビュー日: 2002/09/10
投稿数: 68
投稿日時: 2003-05-15 16:18
おもいっきりかぶってしまいましたね。
情報源も同じなだけに...。

> <meta http-equiv="Refresh" content="1;URL=xxxxx.pdf">
> をアプリ(私の場合C#ですが)で埋め込んでやるしかないと思うのですが、これは可能なんで
> しょうか。

<%# %> だか <%= %>(どっちだっけ?)で埋め込んでやればとりあえず可能です。
美しくはないですが。


[ メッセージ編集済み 編集者: 通常の名無しさんの3倍 編集日時 2003-05-15 16:21 ]
マシュー
常連さん
会議室デビュー日: 2002/11/29
投稿数: 39
投稿日時: 2003-05-15 19:03
これに関連し質問があります。
C#で同じような事を行おうとしているのですが、

>検索条件入力 → 待機画面 → 検索結果表示

と画面の変遷を行なおうとした場合に
待機画面がすぐに表示されず、検索結果が表示される直前になって
やっと待機画面が表示されるといった動きになって困っています。
これではあまり待機画面の意味をなしていません。
検索処理が継続していることが原因と思うのですが、
@一旦待機画面を表示させる
A検索結果表示の処理を行ない結果、検索画面を表示させる
にはどの様にしたらいいものでしょうか?

スキルアップ/キャリアアップ(JOB@IT)