Cookies 如何在Coldfusion中超时客户端范围的变量?

Cookies 如何在Coldfusion中超时客户端范围的变量?,cookies,coldfusion,timeout,scope,Cookies,Coldfusion,Timeout,Scope,如果这是一个“无聊”的问题,我道歉。看起来答案应该很容易找到,但我还没有找到 我正在开发一个大型Coldfusion应用程序,它在客户机范围(ie)中存储大量会话/用户数据。我没有编写这个应用程序,我也没有机会对它进行重大重构 我的任务是将客户端变量设置为72小时后超时。我不完全确定怎么做。如果我编写了应用程序,我会将变量存储在会话范围中,然后更改CFAPPLICATION标记的sessiontimeout属性。尽管如此,我不确定超时是否会影响客户机变量,或者它们的持久性级别是什么。应用程序现在

如果这是一个“无聊”的问题,我道歉。看起来答案应该很容易找到,但我还没有找到

我正在开发一个大型Coldfusion应用程序,它在客户机范围(ie)中存储大量会话/用户数据。我没有编写这个应用程序,我也没有机会对它进行重大重构

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


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

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


编辑:此设置值并不完全符合您的需要。很抱歉,请参阅我关于清除的评论,我认为这更准确。

根据您是使用数据源还是注册表作为客户端存储,您必须在上设置“清除90天未访问的客户端数据至3天(=72小时)”

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

客户端变量=>NameOfDatabase页

如果客户端变量存储为cookie,则在设置cookie时,必须调整过期期限


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

@Sergii-这很有趣……这可能就是我要找的。但是如果我将间隔设置为72小时,并且在第71小时设置了一个变量,它会在1小时后被清除吗?还是清除间隔是“自上次访问以来”“?见安德烈亚斯的回答,第一段。如果您使用数据库或注册表存储客户机变量,则可以设置它自己的清除设置(“清除3天内未访问的客户机的数据”--对于72小时,对),这意味着“如果希望ColdFusion定期清除在指定天数内未访问的客户机数据,请启用此选项。”我想这回答了你的问题。很抱歉,我无法100%确定,因为没有使用客户端范围而不是会话。