【问题标题】:Is it bad to have a javascript timer constantly running (for session checking)?让 javascript 计时器不断运行(用于会话检查)是不是很糟糕?
【发布时间】:2013-03-13 04:53:34
【问题描述】:

我正在考虑创建一个 1 分钟的会话注销警告消息。

为此,我假设我需要一个在后台持续运行的 javascript 计时器。

像这样不断地运行一个计时器,这是对资源的可怕使用,还是它足够小而不重要?

【问题讨论】:

  • 每分钟运行一个计时器不是问题(如果它设置的功能不重也不泄漏内存)。

标签: javascript session timer


【解决方案1】:

你不需要一个持续运行的计时器,你只需要使用 setTimeout 设置 1 分钟。如果您认为这应该是一个不活动计时器,那么您需要做的就是使用clearTimeout 清除它并在用户执行某些操作时将其重置。

你可以这样做:

var timerID;

function startTimer() {
    clearTimeout(timerID);
    timerID = setTimeout(function() {
        // Put your warning or auto logout here
    }, 60000);
}

function UserIsDoingSomething() {
    clearTimeout(timerID);
    // do something....
    startTimer();
}

【讨论】:

  • 嗯.. 很好,马特!当我第一次 ajax 到服务器时,我在 js 变量中设置了服务器会话超时。所以我知道那个价值。然后我猜在每次鼠标停止(??)之后,我可以在 SessionTimeout - 1 分钟内执行 setTimeout。此时,显示警告!当然,每次鼠标移动都会重置......这可能足以让我开始。谢谢!
  • 可能还想考虑更多的鼠标停止来支持只使用键盘或触摸的用户。
  • 实际上,由于客户端的性质...我可以轻松跟踪 NO 移动,但除非用户 ajax 返回服务器...他们可能仍然会在没有通知的情况下注销。好玩!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2011-10-06
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
相关资源
最近更新 更多