web-dev-qa-db-ja.com

SessionStateとViewStateの違いは何ですか?

ASP.NETのSessionStateとViewStateの違いは何ですか?

113
Natrium

セッション状態には、サーバーとの特定のセッション(特定のクライアント/ブラウザ/マシンによる)に関する情報が含まれています。これは、ユーザーがサイトで何をしているのかを追跡する方法です。複数のページに渡って...ウェブの無国籍状態の中。例えば特定のユーザーのショッピングカートの内容はセッションデータです。 Cookieはセッション状態に使用できます。
View Stateは、特定のWebページに固有の情報です。ユーザーに表示されないように、非表示フィールドに保存されます。これは、ページが前回そのページで行ったことを記憶しているというユーザーの錯覚を維持するために使用されます。投稿するたびにきれいなページを与えないでください。 詳細についてはこのページを確認してください

137
Gishu

セッション状態はサーバーに保存され、ViewStateはページに保存されます。

セッション状態は通常、ユーザーから一定期間非アクティブになった後にクリアされます(リクエストCookieにセッションIDを含むリクエストは発生しませんでした)。

ビューステートは、後続のポストバックで非表示フィールドにポストされます。

95

SessionState

  • メモリに保持できるため、高速なソリューションになります。つまり、Webファーム/ Webガーデンで状態を共有することはできません。
  • Webファーム/ Webガーデンに役立つデータベースに保存できます。
  • セッションが終了するとクリアされます-通常、20分間非アクティブになった後。

ViewState

  • サーバーとクライアント間で送受信され、帯域幅を占有します。
  • 有効期限はありません。
  • Web Farm/Web Gardenで役立ちます
31

使用法:アクセスしたい情報を異なるWebページに保存する場合は、SessionStateを使用できます

同じページからアクセスする情報を保存する場合は、Viewstateを使用できます

ストレージビューステートはページ自体に(暗号化されたテキストで)保存され、セッションステートはサーバーに保存されます。

SessionStateは、次の条件でクリアされます

  1. プログラマーがクリア
  2. ユーザーによってクリアされました
  3. タイムアウト
13
Cyril Gupta

セッションは、主にユーザー固有のデータ[セッション固有のデータ]を保存するために使用されます。セッションの場合、セッションが期限切れになるか、ユーザーがセッションを放棄するまで、セッション全体の値を使用できます。ビューステートは、使用されるページにのみスコープを持つデータのタイプです。これらの値を目的のページに転送しない限り、他のページにアクセス可能なビューステート値を持つことはできません。また、ビューステートの場合、サーバー側のすべてのコントロールデータは__Viewstateのキーと値のペアとしてサーバーに転送され、ポストバックが発生したときにクライアントの適切なコントロールに転送されてレンダリングされます。

5
rahul