是否有可能获得会话的年龄?
Is it possible to get the age of a session?
客户希望我创建一个模式,当用户在网站上停留 1 分钟时出现该模式。我认为这对可用性不利,但他们非常认同这个想法。
一旦用户点击关闭按钮,我将设置一个会话变量,这样模式就不会再次出现。
但我不确定如何获取用户在网站上的停留时间。还是我应该看看 cookie?
我唯一能想到的就是在创建会话变量时创建一个代表 60 秒的变量。
然后您可以在 javascript 函数中使用该变量进行倒计时并在 0 处显示模态。
考虑的方法分为两部分:
首先,当会话开始时,将当前时间(或tickcount)添加到会话中并将modalshown标志设置为false:
sample code:
<cfset session.sessionStart = getTickCount() />
<cfset session.modalshown = false />
其次,您的前端可以使用ajax 轮询来请求当前用户的sessionStart 时间,并在sessionStart 时间超过60 秒时显示模态。一旦显示模态,您还需要在会话上设置一个标志,这样您就不会在 60 秒后每次都显示模态。
sample code:
<cfif getTickCount() - session.sessionStart gt 60*1000 and !session.modalShown>
<cfset session.modalShown = true />
<cfreturn true />
</cfif>
通过使用 ajax 和会话范围,当 60 秒到期时,他们正在浏览哪个 coldfusion 页面并不重要。
这是另一种方法。与@Antony 建议的类似,创建一个带有会话开始时间的变量...
然后在每个页面上(比如 application.cfm)你都有这样的 CF 代码:
<cfset msRemaining = getTickCount() - session.sessionStart>
<cfif msRemaining lt 60*1000 and !session.modalShown>
<script>
setTimeout(showModel(), <cfoutput>#msRemaining#</cfoutput>);
</script>
</cfif>
我们的想法是计算在您需要显示模态之前还剩多少毫秒。如果少于 60 秒,您添加一个 javascript 块,它将在该多毫秒后调用您的 showModal()
javascript 函数。否则,你根本就不会生成块...
客户希望我创建一个模式,当用户在网站上停留 1 分钟时出现该模式。我认为这对可用性不利,但他们非常认同这个想法。
一旦用户点击关闭按钮,我将设置一个会话变量,这样模式就不会再次出现。
但我不确定如何获取用户在网站上的停留时间。还是我应该看看 cookie?
我唯一能想到的就是在创建会话变量时创建一个代表 60 秒的变量。
然后您可以在 javascript 函数中使用该变量进行倒计时并在 0 处显示模态。
考虑的方法分为两部分:
首先,当会话开始时,将当前时间(或tickcount)添加到会话中并将modalshown标志设置为false:
sample code:
<cfset session.sessionStart = getTickCount() />
<cfset session.modalshown = false />
其次,您的前端可以使用ajax 轮询来请求当前用户的sessionStart 时间,并在sessionStart 时间超过60 秒时显示模态。一旦显示模态,您还需要在会话上设置一个标志,这样您就不会在 60 秒后每次都显示模态。
sample code:
<cfif getTickCount() - session.sessionStart gt 60*1000 and !session.modalShown>
<cfset session.modalShown = true />
<cfreturn true />
</cfif>
通过使用 ajax 和会话范围,当 60 秒到期时,他们正在浏览哪个 coldfusion 页面并不重要。
这是另一种方法。与@Antony 建议的类似,创建一个带有会话开始时间的变量...
然后在每个页面上(比如 application.cfm)你都有这样的 CF 代码:
<cfset msRemaining = getTickCount() - session.sessionStart>
<cfif msRemaining lt 60*1000 and !session.modalShown>
<script>
setTimeout(showModel(), <cfoutput>#msRemaining#</cfoutput>);
</script>
</cfif>
我们的想法是计算在您需要显示模态之前还剩多少毫秒。如果少于 60 秒,您添加一个 javascript 块,它将在该多毫秒后调用您的 showModal()
javascript 函数。否则,你根本就不会生成块...