- PR -

[ASP.NET2.0] WEBカスタムコントロールで自動レンダリングについて

1
投稿者投稿内容
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2007-03-18 14:11
こんにちわ。
VisualStudio2005にてWEBカスタムコントロールを作成中です。
言語はVBになります。

タイマーなどを利用して、コントロールを任意の間隔でレンダリングさせようと考えている(意図的にRenderContentsメソッドを呼び出す)のですが、これは可能なのでしょうか?

RenderContentsメソッドに渡る引数のHtmlTextWriterがいまいち理解できないのですが、ここに渡るものと同等のものを内部で取得、あるいは生成することが可能であれば、上記のレンダリングを任意で呼び出すことは可能になるかと考えています。

どなたかご存知の方がおられましたご教授願います。
howfar
会議室デビュー日: 2007/03/16
投稿数: 14
投稿日時: 2007-03-19 09:44
タイマーコントロールはサーバ端末に使えるのみですがHtmlTextWriterはコントロールの表現するHTMLを出力用です。
タイマーコントロールはスレッドと似ているです。だから、タイマーコントロールでクライアントにHTMLを出力ことがちょっと無理です。

ちなみに、こんなようは直接javascriptを使ったほうがいいと思います
_________________
私は今日本語をべんきょうしていますが、だから日本語がうまくないですから、もし違うところがあったら、ご指導ください^_^
howfar.jp@gmail.com
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-03-19 10:23
レンダリングをさせた結果を何に利用しようとしていますか?
howfarさんもおっしゃってますが、サーバ上でレンダリングができたとしても、
それをブラウザに表示させることはできません。
なぜできないかはブラウザとサーバがどのように連携しているか、というWebアプリの
基本についての知識があれば理解できるようになると思います。

KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2007-03-19 10:26
howfarさん、ありがとうございます。

タイマーについては、ご指摘の通りの理解をしているつもりです。
別スレッドでサーバー時間を常時取得し、あらかじめ設定した更新間隔と等しい場合にレンダリングを行うというスレッドを作成し、コントロールが生きている間は常にそのスレッドが時間を監視するようなものを考えています。

また、WebカスタムコントロールでJavaScriptをどのように有効利用すれば良いかわかりません。
レンダリング時のアウトプットにスクリプトを出力するということでしょうか?
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-03-19 11:03
HTTPの通信は、クライアントがサーバーに接続して、クライアントがWebページなどのリソースを要求して、サーバーがHTMLなどを返信して、接続を切断して終わります。
クライアントは、サーバーから返信されたHTMLなどを解析し、画面を作って表示します。
ですので、
引用:

KIMERAさんの書き込み (2007-03-19 10:26) より:
あらかじめ設定した更新間隔と等しい場合にレンダリングを行うというスレッドを作成し、コントロールが生きている間は


既に接続が切れていますので、もはやサーバーはクライアントに働きかけることはできません。
ControlやPageのインスタンスは、レンダリングをしてHTMLを返信すると、役目を終えて消えます。(ガーベッジコレクションが起きるまではメモリ上には存在するかもしれませんが)
クライアントでは、コントロールが吐き出したHTMLを表示しているに過ぎません。コントロールはもはや存在しません。
もう一度RenderContents()を動かしたいのなら、もう一度クライアントがサーバーに要求を出す必要があります。
howfar
会議室デビュー日: 2007/03/16
投稿数: 14
投稿日時: 2007-03-19 13:19
javascriptは「response.write()」という文を使えば、出力できます、レンダリングのアウトプットでも出力できると思います、私は今vs2005ideがないので、こんなことをテストできないですけど、でも大体できると思います。

ちなみに、サーバーの時間を取得方法は「ajax」を使えば、実現できます。
_________________
私は今日本語をべんきょうしていますが、だから日本語がうまくないですから、もし違うところがあったら、ご指導ください^_^
howfar.jp@gmail.com
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2007-03-19 19:34
どっとねっとふぁん様、一郎様、howfar様

ご教授頂きありがとうございます。
みなさんがおっしゃる意味がやっと理解できました。
とてつもなく馬鹿な勘違いをしていたようです。

そもそも、今回の質問に至ったキッカケが、「WEB用のRSSリーダーコントロールの作成」というところからきています。
Windows Liveのガジェットにあるようなコントロールを自作しようと思ったのですが、常に最新の状態を保ちたいと思い、今回の質問に至りました。

ですが、考え方を間違っていたようです。
そもそもあのガジェットはWebパーツであり、カスタムコントロールとは異なることを知りました。
また、レンダリングについても誤解していたことが多々あり、とても勉強になりました。


作成中のものについては、Webパーツとして作り直してみようかと思います。

ありがとうございました。
1

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