Управление параметрами для полного сайта!

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

При нажатии на кнопку "Поиск" пользователь попадает на страницу предварительного просмотра, где у пользователя есть возможность уточнить свои параметры поиска agaian. И там может быть много разных типов страниц предварительного просмотра. Например, если пользователи выполняют поиск в категории "Автомобили", то страница предварительного просмотра будет другой, а маска поиска будет такой же, как и в категории "Мотоцикл".

Но опять же, страница с подробностями является единой для всех видов продуктов.

Теперь я хочу написать компонент, который может содержать параметры поиска на начальной странице и для всех видов обзорных страниц.

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

Какова будет лучшая практика для решения этой проблемы, и есть ли какой-либо шаблон проектирования, доступный для решения такой проблемы?

Большое спасибо.

1 ответ

Решение

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

Три варианта отслеживания критериев поиска с использованием различных областей переменных ColdFusion:

  1. сессия
  2. печенье
  3. клиент

Объем сеанса

Это серверная память, связанная с данным пользователем посредством файла cookie, в который разработчик может поместить информацию. Срок его действия истекает после периода бездействия, а ColdFusion обеспечивает обработку событий вокруг его инициализации и истечения срока действия с помощью Application.cfc, Полезно, если вы решили прикрепить объекты с состоянием к каждому пользователю. Недостатком является то, что вы можете исчерпать память, если туда помещается много информации и / или используются долгоживущие сеансы.

печенье

Устанавливает клиентские куки. Может легко захватывать простые данные. Не можете захватывать объекты - вам нужно сериализовать и десериализовать их состояние. Хорошо масштабируется, потому что сервер отслеживает только cookie. Легко взломан.

клиент

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

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