2008-10-13 2 views
1

Это относится к ситуации, когда сеанс используется для хранения некоторых временных данных - одним из примеров является информация, введенная во время многоступенчатого процесса регистрации.Как я могу держать сессию в чистоте?

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

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

ответ

2

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

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

0

Если вы хотите хранить данные насыпных у вас есть следующие варианты:

  1. Cache
  2. Database

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

0

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

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

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

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

0

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

Смежные вопросы