- PR -

WEBページ間での値渡し

投稿者投稿内容
poteto
ベテラン
会議室デビュー日: 2002/08/08
投稿数: 50
投稿日時: 2003-02-04 13:27
Page.Cacheって、同一ページ内での再利用じゃないのですか?
詳しく調べていないのですが、自分は、そうだとばかり思っていました。。。

試しに、ページ間でキャッシュの追加・取得を行ってみましたが、出来ませんでした。

test1.aspx---------------
Cache["TEST"] = "test";

test2.aspx---------------
string testStr = (string)Cache["TEST"];

結果、testStr = null でした。。。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-02-04 13:56
私は、

test1.aspx-----------------------------
this.Cache["a"]="aaa";
this.Response.Redirect("test2.aspx");


で、test2.aspxのPage_Load()で
test2.aspx-----------------------------
Label1.Text=(string)this.Cache["a"];

とやってみたんですが、Label1には"aaa"が表示されました。

Session変数のようにずっと保存されるのではなく、HTTPでのやりとり1回の間のみ有効なのでしょうかね。
Response.Redirect()では、クライアントはサーバーに再接続し新しい要求をしているわけではありませんから。
poteto
ベテラン
会議室デビュー日: 2002/08/08
投稿数: 50
投稿日時: 2003-02-04 14:06
引用:

一郎さんの書き込み (2003-02-04 13:56) より:
私は、

Session変数のようにずっと保存されるのではなく、HTTPでのやりとり1回の間のみ有効なのでしょうかね。
Response.Redirect()では、クライアントはサーバーに再接続し新しい要求をしているわけではありませんから。




はっは〜、なるほど。。。

Response.Redirect()が重要なわけですね。。。
自分が試したのは、Page_Load時にキャッシュし、リンクボタンでページ移動、移動先でキャッシュ取得ってな感じで行ってました。

これは使えます。アイテムが使用後に自動的に削除されるって言うのがいいですね!!

あすとら様のスレッドにて便乗質問してしまったようで申し訳ありませんでしたが、勉強になりました。。。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-02-04 14:59
あれ……potatoさんの仰るように、「Page_Load()でキャッシュに値をセットし、リンクボタンでページ移動、移動先のPage_Load()でキャッシュから値を取得」とやってみたのですが、値を取ることができました。

何でしょう?potatoさんの値は重要でないアイテムがキャッシュから自動的に削除されたんでしょうかね。

いずれにしても、キャッシュというだけあって「また同じ計算をしなければならない所をキャッシュで済ませられればラッキー」という使い方が正しく、ページ間でのやりとりのためのものではないようですね。
poteto
ベテラン
会議室デビュー日: 2002/08/08
投稿数: 50
投稿日時: 2003-02-04 17:14
引用:

何でしょう?potatoさんの値は重要でないアイテムがキャッシュから自動的に削除されたんでしょうかね。



今、再度試してみたら出来ました。。。さっきのソースは残ってないので何ともいえませんが、ただの記述間違いですかね。。。

引用:

いずれにしても、キャッシュというだけあって「また同じ計算をしなければならない所をキャッシュで済ませられればラッキー」という使い方が正しく、ページ間でのやりとりのためのものではないようですね。



そうですね。自分はデータセットを保持しておくのに利用しています。

また、『重要でないアイテムがキャッシュから自動的に削除』っていうのも、あいまい。結局自分で削除するのでしょう。。。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-02-05 09:29
Cacheはアプリケーション全体に渡って有効だと思います。
アプリケーション変数との違いは、有効期限をつけたり、もとになった
データに変更があった時点で内容を変更したり、といった設定が
できる点ではないでしょうか。
『重要でないアイテムがキャッシュから自動的に削除』というのは
有効期限等を適切に設定していれば、必要のないデータは削除される
ようになるという意味ではないでしょうか。
勝手に消えちゃったら困りますよねぇ。

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