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


回答:


143

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


96

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

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

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


30
+1はい-ViewStateはクライアントとサーバーの間を上下に移動しますが、SessionStateはサーバー上に留まるという重要なポイントです。
ゴードンマッキージョーンミロ2009

1
これが正式な答えであるはずです
Fandango68

33

SessionState

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

ViewState

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

14

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

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

ストレージ Viewstateはページ自体に(暗号化されたテキストで)保存され、Sessionstateはサーバーに保存されます。

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

  1. プログラマーがクリア
  2. ユーザーがクリア
  3. タイムアウト

5
ViewStateは暗号化されていません。それらはそのように見えますが、簡単にデコードできます。
Vandel212 14

5

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.