Как я могу сохранить сессию в чистоте? - PullRequest
1 голос
/ 13 октября 2008

Это относится к ситуации, когда Session используется для хранения некоторых временных данных - одним примером является информация, введенная во время многоэтапного процесса регистрации.

Если на веб-сайте есть несколько таких разделов, которые хотят использовать сеанс в качестве временного хранилища данных для страниц в разделе, то каков хороший способ очистки сеанса, когда данные больше не нужны, учитывая, что пользователь может просто отойти от раздела, чтобы сами страницы не могли быть использованы для очистки.

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

Ответы [ 4 ]

2 голосов
/ 13 октября 2008

Время должно содержать сессию в чистоте. Сессии должны истечь, и при этом уничтожить все свои данные. Это поведение по умолчанию.

Я согласен с тем, что хранение слишком большого количества данных в сеансе не очень хорошая вещь для серверных ресурсов, но, как вы знаете, иногда это неизбежное зло. Если вы действительно обеспокоены, подумайте о переносе ваших сессий на SQL Server. Это добавит немного задержки, но вы сможете обрабатывать гораздо больше пользователей.

0 голосов
/ 13 октября 2008

Вы можете разработать многоэтапный процесс регистрации, не используя хранилище сеансов или базу данных для хранения временных данных. Вы можете создать одну страницу .aspx с несколькими панелями, чтобы сделать ее видимой по одной панели за раз. Когда пользователь завершит работу с последней панелью, вы по-прежнему будете иметь доступ ко всем ранее заполненным элементам управления.

0 голосов
/ 13 октября 2008

Почему бы не хранить все в базе данных? Это просто чище.

Почему? Что ж, большинство современных веб-приложений обращаются к базе данных более десятка раз для каждого просмотра страницы, поэтому несколько дополнительных простых запросов не должны существенно влиять на производительность.

Сказав это, нет ничего плохого в хранении большого количества пользовательских данных в сеансе, особенно если вы используете сеансы на основе файлов.

Почему? Сколько текста на самом деле может ввести один человек в регистрационную форму? Все, что меньше 4000 байт, займет столько же места: одна страница ОС!

0 голосов
/ 13 октября 2008

Если вы хотите сохранить объемные данные, у вас есть следующие альтернативы:

  1. Cache
  2. База данных

Не рекомендуется хранить большой объем данных в сеансе.

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