Was ist der Unterschied zwischen SessionState und ViewState?

117

Was ist der Unterschied zwischen SessionState und ViewState in ASP.NET?

Natrium
quelle
7
Ich habe Google ausprobiert, konnte aber keine Übersicht finden.
Natrium

Antworten:

143

Der Sitzungsstatus enthält Informationen, die sich auf eine bestimmte Sitzung (von einem bestimmten Client / Browser / Computer) mit dem Server beziehen. Auf diese Weise können Sie verfolgen, was der Benutzer auf der Website tut ... über mehrere Seiten hinweg ... inmitten der Staatenlosigkeit des Webs. Beispielsweise sind die Inhalte des Einkaufswagens eines bestimmten Benutzers Sitzungsdaten. Cookies können für den Sitzungsstatus verwendet werden.
Ansichtsstatus hingegen sind Informationen, die für eine bestimmte Webseite spezifisch sind. Es wird in einem versteckten Feld gespeichert, damit es für den Benutzer nicht sichtbar ist. Es wird verwendet, um die Illusion des Benutzers aufrechtzuerhalten, dass sich die Seite daran erinnert, was er das letzte Mal darauf getan hat - geben Sie ihm nicht jedes Mal eine saubere Seite, wenn er zurückschickt. Überprüfen Sie diese Seite für mehr .

Gishu
quelle
96

Der Sitzungsstatus wird auf dem Server gespeichert, ViewState wird auf der Seite gespeichert.

Der Sitzungsstatus wird normalerweise nach einer gewissen Zeit der Inaktivität des Benutzers gelöscht (es ist keine Anforderung aufgetreten, die die Sitzungs-ID in den Anforderungscookies enthält).

Der Ansichtsstatus wird beim nachfolgenden Posten wieder in einem ausgeblendeten Feld angezeigt.

Denken Sie vor der Codierung
quelle
30
+1 Ja - wichtiger Punkt, an dem der ViewState zwischen Client und Server auf und ab fährt, SessionState jedoch auf dem Server bleibt.
Gordon Mackie JoanMiro
1
Dies sollte die offizielle Antwort gewesen sein
Fandango68
33

SessionState

  • Kann im Speicher beibehalten werden, was es zu einer schnellen Lösung macht. Dies bedeutet, dass der Status nicht in der Webfarm / im Webgarten geteilt werden kann.
  • Kann in einer Datenbank gespeichert werden, die für Webfarmen / Webgärten nützlich ist.
  • Wird gelöscht, wenn die Sitzung beendet wird - normalerweise nach 20 Minuten Inaktivität.

Sichtzustand

  • Wird zwischen Server und Client hin und her gesendet und beansprucht Bandbreite.
  • Hat kein Ablaufdatum.
  • Ist nützlich in einer Web Farm / Web Garden
Jesper Fyhr Knudsen
quelle
14

Verwendung: Wenn Sie Informationen, auf die Sie zugreifen möchten, auf verschiedenen Webseiten speichern möchten, können Sie SessionState verwenden

Wenn Sie Informationen speichern möchten, auf die Sie auf derselben Seite zugreifen möchten, können Sie Viewstate verwenden

Speicher Der Ansichtsstatus wird auf der Seite selbst (in verschlüsseltem Text) gespeichert, während der Sitzungsstatus auf dem Server gespeichert wird.

Der SessionState wird unter den folgenden Bedingungen gelöscht

  1. Vom Programmierer gelöscht
  2. Vom Benutzer gelöscht
  3. Auszeit
Cyril Gupta
quelle
5
ViewStates werden nicht verschlüsselt. Sie sehen einfach so aus, können aber leicht dekodiert werden.
Vandel212
5

Die Sitzung wird hauptsächlich zum Speichern benutzerspezifischer Daten [sitzungsspezifische Daten] verwendet. Im Fall einer Sitzung können Sie den Wert für die gesamte Sitzung verwenden, bis die Sitzung abläuft oder der Benutzer die Sitzung abbricht. Viewstate ist der Datentyp, der nur auf der Seite, auf der er verwendet wird, Gültigkeitsbereich hat. Sie können keine Viewstate-Werte für andere Seiten haben, es sei denn, Sie übertragen diese Werte auf die gewünschte Seite. Auch im Fall von viewstate werden alle serverseitigen Steuerungsdaten als Schlüsselwertpaar in __Viewstate auf den Server übertragen und zurückgesendet und beim Postback an das entsprechende Steuerelement im Client gerendert.

rahul
quelle