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

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

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

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

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

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

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

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


person user160820    schedule 26.01.2011    source источник


Ответы (1)


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

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

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

Область сеанса

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

Куки

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

Клиент

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

person orangepips    schedule 26.01.2011