Хранить пользовательские данные в MVC 2 - PullRequest
0 голосов
/ 06 мая 2011

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

Например, они заходят на мою страницу, и я узнаю их местоположение через javascript / google.карты.Должен ли я сохранить это в сессии?Я также получаю их IP через JavaScript.Должен ли я просто делать запрос javascript каждый раз, когда мне нужно его использовать, или я должен также сохранять это в сеансе?

Кеширование лучше, чем хранение вещей в сеансе?Должен ли я положить все это в model, поместить model в кеш, а затем использовать Guid, чтобы получить право model для нужного пользователя в кеше?Разве это с ума сошло бы дорого, если бы тысячи пользователей были на странице одновременно?

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

Я только чтоникогда не сталкивался с этим в MVC раньше, поэтому я мог бы воспользоваться небольшим руководством.

Спасибо, ребята.

1 Ответ

2 голосов
/ 06 мая 2011

Если вы хотите сохранить некоторые пользовательские данные в ходе посещения пользователя, вы можете использовать сеанс ASP.NET, файлы cookie или другие более постоянные носители, такие как база данных. Обычно я храню пользовательские данные в виде объектов, которые сериализуются в json, шифруются и записываются в cookie. Это позволяет мне сохранять данные при нескольких посещениях, даже если они уходят и возвращаются.

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

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

В идеале вы хотели бы рассчитать его, чтобы определить, какова будет стоимость.

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