如何使用JQuery和ColdFusion处理会话超时警告?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JQuery和ColdFusion处理会话超时警告?相关的知识,希望对你有一定的参考价值。
我目前有JS功能,可以在我的单页应用程序中处理会话超时。第一次尝试似乎是我的最佳解决方案。只需在页面加载时触发此功能,并向服务器发送Ajax调用以保持会话处于活动状态。然后我找到了更好的解决方案。 ColdFusion具有onRequestStart()
函数,每次用户重新加载页面或向服务器发送请求时都会触发该函数。我在该函数中设置了时间标志。这是一个例子:
<cffunction name="onRequestStart" returnType="boolean" output="false">
<cfargument name="thePage" type="string" required="true">
<cfset REQUEST.appName = 'Single Page Application'>
<cfset REQUEST.lastHit = now()>
<cfreturn true>
</cffunction>
在我的家qazxsw poi页面上,我使用qazxsw poi将lastHit转换为JS。这是一个例子:
.cfm
我想知道如何从最后一个时间戳开始计算30分钟?这样,每次用户向服务器发出请求时,此功能都会刷新。如果他们没有在服务器上击中28分钟,给他们一个警告并开始计算120秒。我想知道实现这一目标的更简单方法是什么?我看到JQuery有一些插件但不知道如何使用它或者该插件是否可靠。使用onRequestStart lastHit作用域值我会阻止向服务器发送Ajax请求,因为我有时间戳记用户和服务器之间的最新交互。如果有人可以提供一些建议或示例,请告诉我。谢谢。
如果它是一个单页的站点,您可以在页面加载时启动JS计时器以显示警告:
toScript()
如果你想让会话无限期地保持活着:
<script type="text/javascript" language="JavaScript">
<cfoutput>
var #toScript(REQUEST.lastHit, "lastHit")#
</cfoutput>
// Check last hit on every request
var getLastHitTime = new Date(lastHit).getTime();
</script>
一定要指向一个真正的CFM,即使它是一个空白文件。
以上是关于如何使用JQuery和ColdFusion处理会话超时警告?的主要内容,如果未能解决你的问题,请参考以下文章
如何在服务器上/同一域下的多个 ColdFusion 应用程序之间共享会话?
如何使用 spring-security 和 jQuery 处理过期会话?