В чем разница между SessionState и ViewState?

Ответы:

143

Состояние сеанса содержит информацию, относящуюся к конкретному сеансу (определенным клиентом / браузером / машиной) с сервером. Это способ отслеживать, что пользователь делает на сайте ... на нескольких страницах ... в безгражданстве Интернета. например, содержимое корзины покупок конкретного пользователя является данными сеанса. Файлы cookie могут использоваться для определения состояния сеанса.
С другой стороны, состояние просмотра - это информация, относящаяся к определенной веб-странице. Он хранится в скрытом поле, поэтому он не виден пользователю. Он используется для поддержания иллюзии пользователя о том, что страница помнит, что он делал на ней в последний раз - не давайте ему чистую страницу каждый раз, когда он отправляет ответ. Проверьте эту страницу, чтобы узнать больше .

Gishu
источник
96

Состояние сеанса сохраняется на сервере, ViewState сохраняется на странице.

Состояние сеанса обычно очищается после периода бездействия пользователя (не было запроса, содержащего идентификатор сеанса в файлах cookie запроса).

Состояние просмотра публикуется в последующей публикации обратно в скрытом поле.

thinkbeforecoding
источник
30
+1 Да - важный момент, что ViewState перемещается вверх и вниз между клиентом и сервером, но SessionState остается на сервере.
Gordon Mackie JoanMiro,
1
Это должен был быть официальный ответ
Fandango68
33

SessionState

  • Может храниться в памяти, что делает его быстрым решением. Это означает, что состояние нельзя использовать в веб-ферме / веб-саду.
  • Может сохраняться в базе данных, что полезно для веб-ферм / веб-садов.
  • Сбрасывается, когда сеанс завершается - обычно после 20 минут бездействия.

ViewState

  • Отправляется туда и обратно между сервером и клиентом, занимая полосу пропускания.
  • Не имеет срока годности.
  • Полезно в веб-ферме / веб-саду
Джеспер Фир Кнудсен
источник
14

Использование: если вы собираетесь хранить информацию, к которой вы хотите получить доступ, на разных веб-страницах, вы можете использовать SessionState

Если вы хотите хранить информацию, к которой вы хотите получить доступ с той же страницы, вы можете использовать Viewstate

Хранилище Состояние просмотра хранится на самой странице (в зашифрованном тексте), а состояние сеанса хранится на сервере.

SessionState очистится в следующих условиях

  1. Очищено программистом
  2. Удалено пользователем
  3. Тайм-аут
Кирилл Гупта
источник
5
ViewStates не зашифрованы. Они просто так выглядят, но их легко расшифровать.
Vandel212,
5

Сеанс используется в основном для хранения пользовательских данных [данных, связанных с сеансом]. В случае сеанса вы можете использовать значение для всего сеанса, пока он не истечет или пользователь не выйдет из сеанса. Viewstate - это тип данных, который имеет область действия только на той странице, на которой он используется. Вы не можете иметь значения состояния просмотра, доступные для других страниц, если вы не перенесете эти значения на желаемую страницу. Также в случае состояния просмотра все данные управления на стороне сервера передаются на сервер в виде пары ключ-значение в __Viewstate и передаются обратно и отображаются в соответствующий элемент управления в клиенте, когда происходит обратная передача.

Рахул
источник