2013-04-29 3 views
0

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

Приложение написано с помощью ASP.NEt MVC, и мы используем много javascript для обработки фильтрации. В настоящий момент большая часть фильтрации выполняется только на стороне клиента (например, извлекаются полные данные для сетки, и вся дальнейшая фильтрация производится только на клиенте).

Я думал, эти шаги:

  • Базовый класс для контроллеров: Method1 принимает данные отправить по методу из common.js и сохраняет его в сессии.
  • общий JS: to common.js добавить метод, который принимает выбор, сделанный пользователем, и вместе с именем элемента управления и именем страницы отправляет его на сервер Method1, чтобы сохранить новый выбор в Объект сеанса.
  • Базовый класс для контроллеров: Method2 принимает имя контроллера, имя страницы и извлекает объект Session.
  • JS отдельных страниц: в событии onload, указывающем все существующие фильтры и получение данных из Method2.

Однако я не уверен, что это решение является универсальным и оптимальным.

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

ответ

0

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

+0

Спасибо за идею! Это звучит разумно, но я думаю, что мы будем придерживаться сессии, поскольку мы хотим сохранить данные выбора в базе данных позже, чтобы пользователь мог использовать свои фильтры, когда он открывает сайт на другой машине. – Anelook

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