2013-02-20 1 views
3

Я буду заселять DataTable и другие controls из комплекса object.Существуют ли ограничения для переменных сеанса в ASP.net?

  1. Где я могу хранить такие object?
  2. Какой размер переменных сеанса начинает влиять на производительность страницы?
+0

Как долго вам нужно хранить данные? Это для нескольких PostBack? –

+0

У вас есть много из этих сложных объектов (больше для каждой сессии)? Или, может быть, только один сложный объект, который можно использовать во всем приложении? – Blachshma

+0

Существуют разные страницы, и каждая страница опирается на один такой объект. – DarknessBeginsHere

ответ

0
  1. Если это за сессии объект, словарь сессия является разумным место для хранения его
  2. Если вы используете InProcess сеанса магазина, размер объекта никак не влияет на производительность страницы (в до тех пор, пока все данные не заставят процесс обмениваться). Другие хранилища сеансов могут иметь небольшое влияние в зависимости от того, сколько времени потребуется для перемещения данных, например. SQL для локального процесса. Это будет быстро, пока ваш объект не станет действительно большим.
3

Данные в объекте Session хранятся в памяти на сервере. Таким образом, предел хранения - это память, доступная для сервера. Эти данные не отправляются клиенту на любом этапе, если вы явно не сделаете этого. Вместо этого код MVC отправляет cookie в браузер клиента, как только вы назначили какое-либо значение объекту Session. Значение этого файла cookie затем используется для уникальной идентификации сеанса.

Итак ...

  1. Объект Session разработан специально, чтобы вы могли хранить данные конкретной сессии на сервере, так что это подходящее место для вас, чтобы положить сессии конкретных структур данных, как вы описали ,
  2. Поскольку объект Session только серверный, использование Session для хранения результатов дорогостоящей операции, которая является инвариантной для нескольких обновлений страниц, ускорит загрузку страниц, поскольку вы можете использовать предыдущий результат вместо того, чтобы создавать его снова , Если вы не исчерпали пределы памяти на сервере, вы не увидите снижения производительности.
+1

-1: Состояние сеанса не обязательно сохраняется в памяти на сервере. Он может храниться в SQL Server или в другом постоянном хранилище. –

+0

@JohnSaunders, разве SQL Server также не хранится где-то на сервере? Или, другими словами, это не клиентское решение. – usefulBee

+1

@usefulBee это может быть другой сервер с веб-сервера. –

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