- - PR -
shared は 値保持に使える?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-26 15:06
いつもお世話になります。 ognacです。
VB2003.net.asp(VB) で,疑問点が出てきました。 Webアプリなのでステートレス対策として, 保持したいobject(変数等)は viewstate/session変数等で 保持します。 VBの構文での shared をつけると. 値が保持されます。 private shared a as integer =0 public function xxxx() as integer hogehoge end function どこかに保持されているとおもうのですが,わかりません。 viewstateに自動的に保持されるかとも思います。 shared 句の意味合いから,多用は避けたい気もします. shared を付けて,値の保持ように使用するは, OKなのでしょうか | ||||
|
投稿日時: 2006-05-26 15:17
全ユーザーでその値をシェアするならば、それでOKです。
そうでなければNGです。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-05-26 15:17
ASP.NET で使用する Shared は
アプリケーション全体で共有されます。 (全ユーザが同じ変数を参照、変更します。) のでユーザ情報や一時的なデータの保存には Viewstate や Session を使用してください。 | ||||
|
投稿日時: 2006-05-26 15:25
Webのasp.netの場合
Sharedでの値の保持場所は実行されているプログラム。 つまりサーバー側になります。 viewstateに値が格納されているというわけではありません。 サーバー側のプログラムで保持されていますので、 session/viewstateのように1:1でのデータの保持の仕方ではなく、 1:多になります。 その部分を考慮した上での使用であれば問題無いかと思います。 利点としては。。あるのかは少しわかりません。。 | ||||
|
投稿日時: 2006-05-26 15:40
リソースの節約?(^^; [追記] 例を一つあげると… 例えば、DB接続文字列やログファイルの出力先など、アプリケーション共通の設定値。 通常Web.configに書きますが、顧客都合でどうしても既存のINIファイルをそのまま使いたい、という場合。 しかも、そのINIファイルがけっこう巨大な上にアクセス頻度が高く、 逐次ファイルから読んでいると性能があまりよろしくない、という状況。 この場合、初回にSharedなインスタンスに情報を全て取り込み、 メモリから読むようにすれば性能の改善が見込まれます。 ただし、アプリケーションを再起動するまで設定ファイルへの変更が 反映されないというデメリットはありますが… [ メッセージ編集済み 編集者: ぼのぼの 編集日時 2006-05-26 15:52 ] | ||||
|
投稿日時: 2006-05-26 15:55
ognacです。
早速のレス,ありがとうございます. そうですよね, shared と言う性格上,納得です. アプリケーション変数とも違うようでね. 固定値の参照 ( const ばかり集めた箇所) の保持には使えそうですね 使い道のげ無いような結果でした. お騒がせしました |
1