- 締切済み
クライアントの画面にちょっとずつ表示
お世話になります。 JSPなどをもちいてクライアントの画面(ブラウザ)にちょっとずつ画面を表示していくにはどうしたらよいですか? イメージ的にはプログレスバーみたいなものをブラウザに表示したいのです。 JavaScriptではなしに 今現在サーバで処理されている状況をクライアントにちょっとずつ流したいのです。 もちろんセッションが切れるほど長い処理ではなく、 数秒から数十秒で終わる処理です。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
> JSPなどをもちいてクライアントの画面(ブラウザ)にちょっとずつ画面を表示していくにはどうしたらよいですか? > イメージ的にはプログレスバーみたいなものをブラウザに表示したいのです。 > JavaScriptではなしに > 今現在サーバで処理されている状況をクライアントにちょっとずつ流したいのです。 これは、普通では出来ません。 HTTPによる通信は、クライアント(ブラウザなど)からサーバに、 URLに指定したページ(CGIとかサーブレットとかでもそうですが)に アクセスしたいと要求を出し、それに対してサーバが要求を処理して返却します。 (サーブレットなら、Javaのプログラムを実行、CGIなら対象の言語で実行) サーバの処理進捗をクライアントに表示したいということですが、 サーバからクライアントに応答を返却するためには、サーバ上の 処理が終わっていないといけないので、サーバからクライアントに ちょっとずつ何度も応答を返却することはできません。。。 ということで、もしどうしても行う必要があるなら、 ブラウザ - サーブレット - ブラウザ | 別スレッドで処理を実行中 というようなイメージで、最初のサーブレットへのアクセス時に、 処理を別スレッドで起動して、ブラウザに応答を返却。 このとき、ブラウザに表示する画面に <meta http-equiv="Refresh" content="xx"> などを使って、xx秒後に再びサーブレットにアクセスし、そのときの 別スレッドの実行状況を取得して、再びクライアントに応答を返却、、、 という処理を別スレッドの実行が終了するまで行うようにしなければ なりません。 当然、エラー時の処理など非常に複雑なものになると思います、、、
お礼
ご回答有り難うございます。 また、お礼が遅くなったことをお詫びします。 上記の件ですが どこかのページでみたことがあるのでそれで解析してみます。 最終的にはご指摘の通りになってしまうかもしれませんが、 とりあえず調査いたします。 ありがとうございました。