Как я могу сохранить чистоту сеанса?

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
702
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

  1. Кеш
  2. База данных

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

Ответ принят как подходящий

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

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

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

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

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

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

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

Другие вопросы по теме