【问题标题】:What does netflix use to detect if the user is AFK?netflix 使用什么来检测用户是否 AFK?
【发布时间】:2015-09-16 02:02:34
【问题描述】:

虽然标题解释得很好,但我很好奇 netflix 如何检测用户是如何被挂断的。我通过 chrome 的检查元素查看了代码,发现它可以通过 javascript/jquery 完成,具体取决于鼠标位置。有没有人可以验证这一点,或者如果不正确,发现它确定的方法?我正在寻找一个插件来防止它暂停。

【问题讨论】:

  • 您可以在鼠标移动或按下文档时设置时间戳,也可以选择考虑 document.hasFocus
  • 大多数网站使用超时功能来检测用户是否在一定时间内移动了鼠标或打字,如果用户没有,系统会自动注销该用户。我有一个类似的脚本可以做到这一点。如果您愿意,我会将其作为答案发布,以便您了解它是如何工作的。

标签: javascript web netflix


【解决方案1】:

很难确定 Netflix 究竟使用什么来确定用户是否离开了 Netflix,因为 Netflix 可能会混淆他们的 JavaScript 代码,并且对其进行逆向工程是非法的。但有几种可能:

  1. 一个不断调用document.hasFocus() 以查看它是否已更改的计时器。
  2. 大多数网络浏览器(Firefox v10+、Chrome v13+、Internet Explorer v10+、Opera v12.10+ 和 Safari v7+)都有一个内置事件来检查窗口/选项卡是否处于活动状态。 Mozilla 有 documentation on using the visibilitychange event,其中包括一个视频示例,该视频会在可见性发生变化时暂停或播放。
  3. 每当调用 javascript 事件 onmousemoveonkeydown 并首次加载页面时,都会将一个变量设置为当前的 unix 时间。计时器检查此变量,以查看自从调用事件以查看用户是否离开窗口以来是否已经过去了这么多时间。这不太可能发生,因为人们可能会在不触碰鼠标或键盘的情况下观看 2 小时的电影。

还有this previous question on StackOverflow,其中包含对您提出的同一问题的许多不同答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多