Qual è la differenza tra SessionState e ViewState?


Risposte:


143

Lo stato della sessione contiene informazioni relative a una sessione specifica (da un particolare client / browser / macchina) con il server. È un modo per tenere traccia di ciò che l'utente sta facendo sul sito .. su più pagine ... in mezzo all'apolidia del Web. ad esempio, il contenuto del carrello degli acquisti di un determinato utente sono dati di sessione. I cookie possono essere utilizzati per lo stato della sessione.
Lo stato di visualizzazione, d'altra parte, è informazioni specifiche per una particolare pagina web. È memorizzato in un campo nascosto in modo che non sia visibile all'utente. Viene utilizzato per mantenere l'illusione dell'utente che la pagina ricordi quello che ci ha fatto l'ultima volta - non dargli una pagina pulita ogni volta che pubblica di nuovo. Controlla questa pagina per ulteriori informazioni .


96

Lo stato della sessione viene salvato sul server, ViewState viene salvato nella pagina.

Lo stato della sessione viene solitamente cancellato dopo un periodo di inattività da parte dell'utente (non è avvenuta alcuna richiesta contenente l'id di sessione nei cookie di richiesta).

Lo stato di visualizzazione viene pubblicato nel post successivo in un campo nascosto.


30
+1 Sì - punto importante che ViewState viaggia su e giù tra client e server, ma SessionState rimane sul server.
Gordon Mackie JoanMiro

1
Questa avrebbe dovuto essere la risposta ufficiale
Fandango68

33

SessionState

  • Può essere conservato in memoria, il che lo rende una soluzione rapida. Ciò significa che lo stato non può essere condiviso nella Web Farm / Web Garden.
  • Può essere mantenuto in un database, utile per Web Farm / Web Gardens.
  • Viene cancellato quando la sessione termina, di solito dopo 20 minuti di inattività.

ViewState

  • Viene inviato avanti e indietro tra il server e il client, occupando la larghezza di banda.
  • Non ha data di scadenza.
  • È utile in una Web Farm / Web Garden

14

Uso: se hai intenzione di archiviare le informazioni a cui desideri accedere su diverse pagine web, puoi usare SessionState

Se desideri memorizzare le informazioni a cui desideri accedere dalla stessa pagina, puoi utilizzare Viewstate

Archiviazione Il Viewstate è memorizzato all'interno della pagina stessa (in testo crittografato), mentre il Sessionstate è memorizzato nel server.

Il SessionState verrà cancellato nelle seguenti condizioni

  1. Azzerato dal programmatore
  2. Cancellato dall'utente
  3. Tempo scaduto

5
ViewStates non sono crittografati. Sembrano così, ma possono essere facilmente decodificati.
Vandel212

5

La sessione viene utilizzata principalmente per memorizzare dati specifici dell'utente [dati specifici della sessione]. Nel caso di sessione è possibile utilizzare il valore per l'intera sessione fino a quando la sessione non scade o l'utente abbandona la sessione. Viewstate è il tipo di dati che ha ambito solo nella pagina in cui viene utilizzato. Non è possibile avere valori di viewstate accessibili ad altre pagine a meno che non si trasferiscano tali valori alla pagina desiderata. Inoltre, nel caso di viewstate, tutti i dati del controllo lato server vengono trasferiti al server come coppia di valori chiave in __Viewstate e ritrasferiti e resi al controllo appropriato nel client quando si verifica il postback.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.