是否有一个“问题”;“这次访问”;ColdFusion中的时间戳?

是否有一个“问题”;“这次访问”;ColdFusion中的时间戳?,coldfusion,Coldfusion,Coldfusion有一个系统创建的客户端变量,名为lastVisite 在请求实际设置该变量(即client.thisvisit)期间,是否有方法获取该变量的值 我的想法是,我可以在会话中存储“ThisVisit”时间戳,然后在发出下一个请求时将其与lastvisit进行比较。这将告诉我会话中是否有其他请求 其目的是我们有一个使用ajax记录锁的页面,在该页面上每分钟刷新一次锁。六十分钟后,ajax锁代码将自动将用户注销网站(由于不活动)。当用户在其他窗口/选项卡中执行任务时会出现问题(活动指

Coldfusion有一个系统创建的客户端变量,名为lastVisite

在请求实际设置该变量(即client.thisvisit)期间,是否有方法获取该变量的值

我的想法是,我可以在会话中存储“ThisVisit”时间戳,然后在发出下一个请求时将其与lastvisit进行比较。这将告诉我会话中是否有其他请求

其目的是我们有一个使用ajax记录锁的页面,在该页面上每分钟刷新一次锁。六十分钟后,ajax锁代码将自动将用户注销网站(由于不活动)。当用户在其他窗口/选项卡中执行任务时会出现问题(活动指示)

感知所有请求更新LastVisit,我希望ajax锁代码保存一个“thisvisit”值,以便下次运行时可以将其与LastVisit客户端变量进行比较。

两个要求:

  • 设置为对客户端变量使用DB而不是注册表(信任 我)
  • 客户端变量必须启用“全局变量”
  • 您的cfapplication或application.cfc必须启用客户端管理
如果您有这三件事,您可以选择如下查询:

<cfquery name="getLvisit" datasource="myClientVarsDB">
    SELECT lvist 
    FROM   cglobal
    WHERE  cfid = 
        <cfqueryparam type="CF_SQL_CHAR" value="#urltoken#"/>
</cfquery>

选择lvist
来自cglobal
其中cfid=
urltoken可能是错的。。。它可能需要jsessionID或CFID,但我的内存告诉我cftoken。我必须找到一个使用客户端DBs的网站,给你一个明确的答案

这将给出lvisit变量的当前值。您可以将其存储在会话中,然后将其与后续查询表中的值进行比较,然后再次覆盖它(如果有意义的话)


注意-此值在每次请求时都会更新-因此您的查询将获取当前值(在更新之前)。我以前认为它是先更新的,但根据Tom的说法,它实际上是最后更新的。

onRequestStart内部的
有什么问题?(以及随后的会话检查/存储)@PeterBoughton我猜它们不一定相等。然而,你是对的,我也可以用同样的方法设置我自己的“lastvisit”。好吧,我想这取决于客户端变量是在请求的开始还是结束时设置的,但也可以使用onRequestEnd,而且我预计两种方式的差异不会超过几毫秒。如果您正在测试当前请求是否是最新的请求,那么可能最好执行LT/GT检查,而不是直接相等(我可能完全忽略了这一点-可能有助于在问题中添加更多关于此用途的详细信息)?我通常不建议在客户机表中启用“全局”变量。您最好在会话中使用第一个请求创建一个时间戳,然后检查它是否更新并将其与后续请求区分开来。如果您仍然需要知道,我将为您添加一个答案:)谢谢。根据测试和sql日志,只有在处理页面之后,才会更新该值。我制作了一个休眠10秒的页面,lvisit值在该周期结束时。这有效地回答了我的问题,答案是否定的。。我将编辑我的帖子以反映这一点。再一次-这比在会话中简单地跟踪它要麻烦得多。是的,在这一点上麻烦得多。如果有一个简单的ThisVisit变量,我就可以从ajax代码中进行所有管理,而无需修改涉及的其他应用程序。