【问题标题】:jQuery if user active; reload div, stop reloading if user is inactive如果用户处于活动状态,则为 jQuery;重新加载 div,如果用户处于非活动状态,则停止重新加载
【发布时间】:2011-12-16 16:51:11
【问题描述】:

我有以下情况。 我的 twitter 提要应该每 5 秒刷新一次(通过使用 load() 函数)。虽然我一直在监控我的带宽,但它真的很糟糕。

我的想法是在用户处于非活动状态时立即停止刷新(例如,5 或 10 秒页面上没有交互)。我尝试了几个插件,但没有成功。

刷新如下:

setInterval(function() { $("#feed").load("feed.php"); }, 5000);

它应该停止刷新,但我尝试的插件只是保持刷新(运行间隔)。

有什么方法可以实现吗?我尝试了以下插件: - http://www.bedroomlan.org/coding/detecting-'idle'-and-'away'-timeouts-javascript - http://www.erichynds.com/jquery/a-new-and-improved-jquery-idle-timeout-plugin/

提前致谢。

【问题讨论】:

  • 我的解决方案是将刷新时间从 5 秒更改为 30 秒,除非您是真正的速读者。
  • "Twitter:因为你的 ADD 不够严重。"
  • 在活动中使用。在参加活动时,很多人发了推文。有时每 5 秒超过 3 个。

标签: jquery load timeout python-idle


【解决方案1】:

最简单的方法是使用idleTimer jQuery 插件。

其中一项功能是获取自用户上次活动以来的时间量。它允许您编写以下代码。

setInterval(function () { 
  if ($.idleTimer('getElapsedTime') < 5000) {
    $("#feed").load("feed.php");
  }
}, 5000);

【讨论】:

  • 这似乎不起作用。在我不活动后,它仍然保持刷新。
  • @Roel 你确定先用一个值初始化idleTimer。我相信这是使用getElapsedTime所必需的
  • 现在就像一个魅力。非常感谢!
【解决方案2】:

如何跟踪鼠标的位置? 每 5 秒或任何时候,查看鼠标的坐标是否与上一次检查时相同。如果它们相同,则假定鼠标没有移动。然后不要刷新您的提要。如果它们不同,请刷新您的提要。

只是一个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多