【问题标题】:Session Timeout creation for application应用程序的会话超时创建
【发布时间】:2011-11-24 12:34:06
【问题描述】:

我有会话超时的要求。这是我的要求。登录到我的应用程序后,应该开始计时。如果达到 10 分钟,它应该给出一个提示,提示为

你想继续吗?

如果客户按“是”,会话应该继续,时间重置为 0。如果按“否”,会话应该关闭,错误页面需要出现。我需要在 javascript 和 jsp 中进行这些更改。任何人都可以对此有所了解吗?

【问题讨论】:

  • 在JS中使用setTimeout()函数
  • Alerk 正在使用框架集。在页面加载时,我给出了框架集。每次加载框架时都会重置。

标签: javascript jsp


【解决方案1】:

在你的框架集文件中,你可以有这个:

<script type="text/javascript">
    window.setTimeout('checkIfContinue()', 10*60*1000);  //10 minutes

    function checkIfContinue()
    {
        if(confirm("Do you want to continue?"))
        {
            window.setTimeout('checkIfContinue()', 10*60*1000);  //start the timer again
        }
        else
        {
            window.location = 'timeout.html';
        }
    }
</script>

当然,如果您需要一个花哨的对话框,那么您需要编写代码而不是使用 javascript 函数 confirm

【讨论】:

  • 这将在页面加载后等待十分钟,而不是在会话开始后等待十分钟。因此,如果用户转到第 1 页并在那里停留了 5 分钟,然后转到第 2 页并在那里停留了 5 分钟,则不会发生超时。
  • @dnuttle:我不认为会议开始后 10 分钟是一个合理(甚至有效)的要求。术语“超时”通常表示“从上一次用户操作开始”。
【解决方案2】:

我不确定您是否正在寻找完整的代码示例。但简而言之,我会说您应该在客户端使用 ajax 每分钟左右 ping 一次服务器,以查看超时是否已过期。但是,如果有,那就是一个挑战。服务器告诉客户端,“会话已过期”,但接下来呢?如果用户没有回答“是”,您希望会话超时吗?如果是这样,那么服务器在超时之前等待多长时间才能收到客户端的回复?如果用户在 30 秒内没有点击“是”怎么办?所以它会变得粘稠,你必须决定规则。

如果不采取任何行动,除非用户点击“否”,否则这不是问题。

但是我也应该说,我认为询问访问者是否要继续是一个好主意。这让游客觉得他们被逼着离开。

【讨论】:

  • 这条评论对我来说很有商业逻辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多