0

我需要在 10 分钟不活动后刷新页面。

我所说的不活动是什么意思:没有鼠标移动和/或没有点击身体

这是我到目前为止所拥有的(那段代码工作正常)

idleTime = 0;

function timerIncrement() {
    idleTime = idleTime + 1;

    if (idleTime > 10) {
    window.location.reload();
    }
}

$j(document).ready( function(e) {
    var idleInterval = setInterval("timerIncrement()", 60000); // 1 min

    $j(this).mousemove(function () {
        idleTime = 0;
    });

    $j(this).click(function () {
        idleTime = 0;
    });
}

我不喜欢这里的事实是,它会在每个 mousemove 事件上重置计时器。我担心性能。

我想要的是这样的:如果鼠标位置发生变化,每 2 分钟检查一次。如果是,则增加计时器。不知道该怎么做。

有什么帮助吗?

4

1 回答 1

0

您可以添加一个标志变量(例如:hasMouseMoved),在 mousemove 处理程序上更新它并删除事件处理程序,然后每当计时器触发时将代码更改为:

if ((idleTime > 10) || (idleTime%2==0 && hasMouseMoved))
{
      window.location.reload();
}
于 2013-05-13T19:06:58.633 回答