首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Domino服务器会话超时- XPages

获取Domino服务器会话超时- XPages
EN

Stack Overflow用户
提问于 2013-09-10 19:14:49
回答 3查看 2.2K关注 0票数 3

如何在XPages-SSJS中获取Domino服务器的会话超时。我想在会话到期之前提示用户保存他/她的数据。谢谢

EN

回答 3

Stack Overflow用户

发布于 2013-09-10 19:31:37

服务器仅在用户向服务器发出请求时才与用户通信。

因此,如果用户没有请求信息,服务器就无法将信息发送给用户。

例如:

  1. 用户从服务器请求页面。
  2. 服务器将该页面发送回用户,并为该用户创建会话。该会话将在5分钟后过期。
  3. 这5分钟已到,在此期间,用户没有请求任何进一步的页面。因此,用户会话结束,但因为用户没有发出任何请求,所以服务器无法将此消息传递给用户。

这正是HTTP流量的工作方式。然而,有一些方法可以解决这个问题,通过更改上面的示例,我将向您展示最简单的方法之一:

  1. 用户从服务器请求页面。
  2. 服务器将该页面发送回用户,并为该用户创建会话。会话设置为在5分钟后过期。服务器发回的页面有一个javascript setTimeout函数,该函数被设置为在服务器javascript的会话5分钟结束之前触发,并且同样,用户没有请求任何进一步的页面。因此,用户会话结束,服务器无法将此消息传递给用户。然而,页面上的javascript知道服务器上的会话将到期,并发出警告,告诉用户保存他们的工作。
票数 1
EN

Stack Overflow用户

发布于 2013-09-10 19:39:39

在SSJS中,您可以使用以下代码获取SessionTimeout的设置:

代码语言:javascript
复制
facesContext.getApplication().getApplicationProperty("xsp.session.timeout", "30");

但这是一个静态值(分钟)。会话在当前会话的最后一次请求后X分钟(默认为30分钟)内过期。

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 19:08:48

服务器和客户端之间的每次交互都会重置超时。因此,可以做的基本上是在客户端进行倒计时,在每次新请求后重置。并且这也可以被客户端用来在实际会话超时之前的定义时间内触发保存交互。

这是否有意义是有争议的。或者,也可以实现自动保存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18717454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档