【问题标题】:Parameters Management for complete website!完整网站的参数管理!
【发布时间】:2024-01-10 15:04:01
【问题描述】:

在我网站的起始页上,我有一个搜索掩码,用户可以在其中设置选择不同的搜索条件。如果用户不这样做,则将为搜索参数设置默认值。

通过点击搜索按钮,用户可以进入预览页面,用户可以再次优化他的搜索参数。并且可以有许多不同类型的预览页面。例如,如果用户搜索 Cars 类别然后预览页面是 other 并且搜索掩码将与 Motorcycle 类别中搜索的不同。

但同样,所有种类的产品的详细信息页面都是单一的。

现在我想编写一个组件来保存起始页的搜索选项以及所有不同类型的概览页面。

我还想跟踪我从哪个预览页面登陆详细信息页面以及当用户从详细信息页面返回预览页面时的信息,我将使用用户已经优化的值加载所需的掩码。

解决此问题的最佳实践是什么?是否有任何设计模式可用于此类问题?

非常感谢。

【问题讨论】:

    标签: java search coldfusion parameters


    【解决方案1】:

    一般来说,您所描述的特定问题没有设计模式。根据您想要对其建模的方式,您可以实现诸如StrategyState 和/或Command 之类的模式。其中每一个都提供了一些封装状态的工具(例如,什么类型的预览和标准)和一些相关的行为。

    使用不同 ColdFusion 变量范围跟踪搜索条件的三个选项:

    1. 会话
    2. 饼干
    3. 客户

    Session scope

    这是通过 cookie 链接到给定用户的服务器内存,开发人员可以将信息放入其中。它被设计为在一段时间不活动后过期,ColdFusion 通过Application.cfc 提供围绕其初始化和过期的事件处理。如果您决定将有状态对象附加到每个用户,这很有用。缺点是如果将大量信息放在那里和/或使用了长寿命的会话,您可能会耗尽内存。

    Cookie

    设置客户端 cookie。可以轻松捕获简单的数据。无法捕获对象 - 您需要序列化和反序列化它们的状态。扩展性很好,因为服务器只跟踪一个 cookie。很容易被黑。

    Client

    从持久性中读取和写入与用户会话关联的数据。 默认情况下,这是 Windows 上的注册表 - 不要使用它,因为如果注册表损坏,它可能会使您的服务器崩溃并造成可怕的后果。 而是访问管理员并将其设置为使用数据库。当您想在用户在网站上移动时跟踪有关用户的大量信息时很有用,但只能扩展以及支持数据库。需要像 cookie 范围一样序列化数据。

    【讨论】:

      最近更新 更多