2013-04-18 2 views
0

В моих проектах я использую множество элементов управления ASCX. Эти элементы управления используют панели обновления для обновления их содержимого. Чтобы сохранить данные через частичные сообщения (например, при обновлении панели обновления), я сохраняю все данные управления в сеансе. Например, у меня может быть элемент управления, который использует CheckBoxList. Когда пользователь проверяет окно из списка, он вызывает частичную обратную передачу (для выполнения некоторой логики), и появляется панель обновления. Поскольку панель обновляется, я теряю все данные между почтовыми серверами, за исключением того, что я храню эти данные в сеансе. Таким образом, когда управление перезагружается, я могу взять данные и восстановить список флажков. Мои сеансы обычно состоят из списков объектов.Использование сеансов в пользовательских элементах управления

Мой вопрос: это лучший способ сохранить данные? Какие возможные проблемы я могу не учитывать? Мне сказали, что если несколько человек используют это в одно и то же время (так как списки объектов большие), у IIS может закончиться нехватка памяти и сбой.

Спасибо за любую помощь

ответ

0

Трудно сказать, если это «лучший способ для сохранения данных» для вашего конкретного проекта. Однако я могу ответить на вопрос о «возможных проблемах» вашего вопроса.

Состояние сеанса хранится в памяти по умолчанию, а это означает, что вы будете использовать дополнительные ресурсы на своем сервере. Переменные сеанса могут создаваться «на лету» и не требуют, чтобы вы их явно удаляли, что может привести к увеличению накладных расходов. Поэтому да, вы правы, что использование сеансов для большей части ваших функций, скорее всего, означает использование большего количества ресурсов (процессор и память). Будет ли это «закончиться нехваткой памяти и сбоем», это вопрос нагрузки и сервера.

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