В чем разница между SessionState и ViewState? - PullRequest
113 голосов
/ 09 апреля 2009

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

Ответы [ 5 ]

137 голосов
/ 09 апреля 2009

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

93 голосов
/ 09 апреля 2009

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

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

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

31 голосов
/ 09 апреля 2009

SessionState

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

ViewState

  • Отправляется туда и обратно между сервером и клиентом, занимая полосу пропускания.
  • Не имеет срока годности.
  • Полезно в веб-ферме / веб-саду
13 голосов
/ 09 апреля 2009

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

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

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

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

  1. Сбрасывается программистом
  2. Отменено пользователем
  3. Время ожидания
5 голосов
/ 09 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...