目前我每10分钟使用一次Ajax请求来更新其他人的某些内容和其他时间间隔。
我使用jQuery执行此操作:
我这样做是因为虽然我希望内容保持最新,但我不希望它在后台发送请求(当用户不使用应用程序时)。这样做也意味着如果用户在超过一段时间内没有使用它,当他们再次开始使用它时,它会自动更新。
我想知道这是多么有效,因为无论何时鼠标移动,调用都会被调用(并且稍微降低了性能 - 特别是在尝试点击链接时) - 这是一种更有效的方法吗?
谢谢!
答案 0 :(得分:4)
我希望在鼠标移动时激活/重置一个计时器,比如60秒,并设置固定间隔检查,只有当该计时器高于零时才会运行。
这样,每次鼠标移动时都不会进行检查,如果用户变为非活动状态,则更新检查会在60秒后停止。
答案 1 :(得分:1)
另一种可能的解决方案是使用窗口blur
和focus
事件来确定窗口是否处于活动状态:
var checkForContentUpdates = true;
$(window).focus(function() {
checkForContentUpdates = true;
});
$(window).blur(function() {
checkForContentUpdates = false;
});
然后,您的AJAX例程将关闭checkForContentUpdates
布尔。
我确信有些情况下这不是万无一失的,因此您可能需要将此方法与其他逻辑相结合。