【问题标题】:How can I timeout Client-scoped variables in Coldfusion?如何在 Coldfusion 中超时客户端范围的变量?
【发布时间】:2010-03-24 16:05:55
【问题描述】:

如果这是一个“duh”问题,我深表歉意。看起来答案应该很容易用谷歌搜索,但我还没有找到。

我正在开发一个大型 Coldfusion 应用程序,该应用程序在客户端范围内存储大量会话/用户数据(即 )。这个应用程序不是我写的,我也没有对它进行重大重构的奢侈。

我被赋予了将客户端变量设置为在 72 小时后超时的任务。我不完全确定如何做到这一点。如果我编写了应用程序,我会将变量存储在 Session 范围内,然后更改 CFAPPLICATION 标记的 sessiontimeout 属性。尽管如此,我不确定该超时是否会影响客户端变量,或者它们的持久性级别是多少。应用程序现在的工作方式,客户端变量永远不会超时,只有清除用户的 cookie,或者访问将所有客户端范围的应用程序变量设置为“”的注销页面,才会清除值。

当然,我可以创建某种时间戳变量,例如 Client.LastAccessDateTime,并在 Application.cfm 中添加一些内容以清除客户端变量,如果该日期时间比 Now() 早 72 小时以上。但一定有更好的方法,对吧?

【问题讨论】:

    标签: cookies coldfusion timeout scope


    【解决方案1】:

    根据您是使用数据源还是注册表作为客户端存储,您必须在

    ColdFusion 管理员 => 客户端变量 => 注册表

    客户端变量 => NameOfDatabase 页面。

    如果客户端变量存储为 cookie,那么您必须在设置 cookie 时调整过期时间。

    客户端变量页面上的清除间隔仅控制 ColdFusion 对您的客户端存储执行清除操作的频率(= 寻找过期的客户端变量以删除它们)。

    【讨论】:

      【解决方案2】:

      我想您正在寻找 Purge Interval 设置,该设置在 CF 管理员中的服务器设置 > 客户端变量页面中配置。默认间隔为 1 小时 7 分钟。

      编辑:这个设置值不是你所需要的。抱歉,请参阅我关于清除的评论——认为它更准确。

      【讨论】:

      • @Sergii - 这很有趣......这可能就是我正在寻找的。但是如果我将间隔设置为 72 小时,并且在第 71 小时设置了一个变量,它会在 1 小时后被清除吗?还是“自上次访问以来”的清除间隔?
      • 见安德烈亚斯的回答,第一段。如果您使用数据库或注册表来存储客户端变量,则可以设置它自己的清除设置(“清除 3 天未访问的客户端的数据”——对于您的 72 小时,对),这意味着“启用此选项如果您希望 ColdFusion 定期清除在指定天数内未访问的客户端数据。”认为这回答了你的问题。抱歉,我不能 100% 确定,因为没有使用客户端范围而不是会话。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      相关资源
      最近更新 更多