【问题标题】:trigger jQuery code after 10 min on in-activity在非活动状态 10 分钟后触发 jQuery 代码
【发布时间】:2011-07-14 17:42:47
【问题描述】:

监控页面上用户活动的最佳方式是什么?我正在开发一个 CMS 系统并将其用作安全功能,如果用户在设定的分钟数内不活动,则 jQuery 将触发一个功能,该功能将触发整个页面覆盖并加载登录脚本,必须强制用户重新输入密码以重新打开页面,否则在多次尝试失败后 PHP 将强制用户注销脚本并破坏整个会话。

所以这里是怎么回事

如果 5 分钟后没有活动

jQuery(每 5 分钟检查一次用户活动)-> 循环 函数(通过 AJAX 触发覆盖 + 授权脚本)

如果有活动

jQuery(每 5 分钟检查一次用户活动)-> 循环

所以,这就是它,在此先感谢。

此脚本的活动定义:将鼠标或文本输入(键盘)移动到文本字段或单击元素中。

【问题讨论】:

  • 你如何定义活动?正常的方法是在活动发生时重置一个计时器事件(可能是 mousemove 或 keyup )。但是你需要清楚地定义“活动”才能开始。
  • @Schroedingers Cat 我将活动定义为鼠标移动,即使单击显示/隐藏内容也被视为活动。不活动是指鼠标一直在页面的一个元素或特定点上并且没有移动,或者没有文本输入到输入字段。
  • TBH,该插件是您最好的选择。如果那不合适,那么正如我上面评论的那样。如果您需要更多详细信息,请告诉我,我会将一些代码放在一起。

标签: javascript ajax jquery


【解决方案1】:

你可以使用jQuery的Idle Timer插件。

【讨论】:

    【解决方案2】:

    正如贾斯汀所说,jQuery 确实有一个空闲计时器插件。但是,单独使用这种方法是不够的,除非您的空闲计时器也破坏了登录 cookie - 您的覆盖可以很容易地被一系列浏览器插件或什至(取决于您的应用程序的构建方式)GET 参数绕过。

    除非您将用户注销,否则重新加载页面甚至会绕过这种“安全性”。

    【讨论】:

    • 重新加载页面将强制新会话,因为整个系统是基于 AJAX 的,并且用户不会离开 main.php 文件。所以会话是一样的,即使刷新 PHP 会强制一个新的会话,这会强制登录脚本。所以没有办法通过。
    • @Kerin:即使在“传统”站点上,空闲计时器也可用于将浏览器重定向到注销页面,该页面会破坏会话并通知用户他们已空闲。例如,我的银行在其网站上使用了 5 分钟的“无移动”检查和 15 分钟的服务器端“无请求”超时。
    • @PT,如果重新加载页面会导致用户退出,我想这可能会让您的用户感到烦恼。但是您的里程可能会有所不同。 :)
    • @Justin,我同意你的看法。您是不是想在这里回复 PT?
    • @Kerin:抱歉,今天就是这样的日子之一。我会编辑评论,但有一条讨厌的五分钟规则。
    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多