当前位置: 首页 > 面试题库 >

如果用户当前在页面上处于活动状态,如何使用JavaScript / jQuery进行检测?

阎俊英
2023-03-14
问题内容

我需要检测用户超过30分钟的时间在当前页面上处于非活动状态(未单击或键入)。

我认为最好使用附加到body标签的事件模糊处理,然后继续将计时器重置30分钟,但是我不确定如何创建它。

我有可用的jQuery,尽管我不确定其中有多少将实际使用jQuery。

编辑:
我更需要知道他们是否正在积极使用该站点,因此单击(更改字段或字段在字段中的位置或选择复选框/收音机)或键入(在输入,文本区域等中)。如果他们在另一个选项卡中或使用其他程序,那么我的假设是他们不在使用该站点,因此应注销(出于安全原因)。

编辑#2:
所有人都清楚,这根本不能确定用户是否已登录,是否经过身份验证或其他任何操作。现在,如果用户在30分钟内未发出页面请求,服务器将注销该用户。此功能可以防止某人花费30分钟以上的时间填写表单,然后提交表单只是为了发现自己尚未注销。因此,这将与服务器站点结合使用,以确定用户是否处于非活动状态(不是单击或键入)。基本上,要做的是在闲置25分钟后,将向他们显示一个对话框以输入密码。如果不在5分钟之内,系统将自动注销它们,并注销服务器的会话(下次访问页面时,与大多数站点一样)。

Javascript仅用作对用户的警告。如果禁用了JavaScript,则他们将不会收到警告,并且(以及大多数网站无法正常工作)它们将在下次请求新页面时注销。


问题答案:

您可以观看鼠标的移动,但这是您将获得最好的指示,以表明用户仍在那儿而无需听click事件。但是,javascript无法判断它是活动选项卡还是浏览器处于打开状态。(好吧,您可以获取浏览器的宽度和高度,并告诉您浏览器是否已最小化)



 类似资料:
  • 问题内容: 如果URL已经激活,如何禁用反应路由器?例如,如果我的URL不会因单击而改变,我想完全阻止单击或呈现而不是。 我想到的唯一解决方案是使用(或)和setting ,但是我想使用一种可在IE9和IE10中使用的解决方案。 问题答案: 我不会问您为什么要这种行为,但是我想您可以包装在自己的自定义链接组件中。 (ES6,但您可能已经有了大致的想法…)

  • 问题内容: 我目前正在使用Laravel应用程序,为了防止垃圾邮件,我决定只有活跃的用户才能登录。我目前正在使用Laravel的登录系统,就像Laravel的官方网站教程中一样,这是我的表单操作: 这完全可以正常工作,但是我想检查用户的活动状态,如果不活动,它将被重定向到激活页面,否则它将登录。有没有简单的方法可以执行此操作,或者我有义务制造新的控制器,路由和进行更多验证?谢谢。 编辑:忘记提及我

  • 问题内容: 我每秒要运行30次代码。这很好用,但是当我选择另一个选项卡(使带有我的代码的选项卡变为不活动状态)时,由于某种原因,该选项卡被设置为空闲状态。 如果运行此代码,然后切换到另一个选项卡,请等待几秒钟,然后返回,动画将继续到切换到另一个选项卡时的位置。因此,如果该选项卡处于非活动状态,则动画不会每秒运行30次。可以通过计算每秒调用该函数的次数来确认这一点- 如果选项卡处于非活动状态,则不是

  • 尝试将'active'类添加到与当前页面相对应的链接中,该链接位于menu.html中存储的菜单上,并通过jQuery将其拉到index.html。 我已经设法用JQuery调用了menu.html文件,并将菜单插入index.html。CSS的造型都很完美。但是,由于我现在不是单独添加'active'类到每个菜单项,所以我需要一个方法来实现这一点。在index.html中所有活动类都在一个屋檐下

  • 我正在寻找一种方法,显示一个div时,一个锚点被点击。我在我的页面上有一个HTML5/PHP表单,当提交时,它会将用户带着一条谢谢消息带到div中放置的锚,这是激活该链接的唯一方法。这是我试图显示的div: 当锚点处于活动状态时,是否有一种方法可以改变(可能使用CSS)显示:none?

  • 问题内容: 是否有可能使MySQL中的行处于非活动状态?因此,该行不再用于查询结果吗?我的客户希望保留删除的成员在数据库中的存在,但是我不想编辑所有查询以检查该成员是否被删除。 还是有一种简单的方法将整个行数据移动到另一个“非活动”表中? 问题答案: 您可以重命名当前表,在其中创建“ deleted”列,然后创建一个与当前表同名的视图,并选择“ deleted = 0”。这样,您不必更改所有查询。