【发布时间】:2017-06-21 16:08:56
【问题描述】:
我正在考虑创建一个执行以下操作的脚本:
每隔 X 分钟,检查用户是否输入了某些内容。如果他们有,那么保持他们的服务器端会话活动(通过 AJAX 调用一些无害的操作服务器端)。如果他们没有,那么什么都不做。
这是我想出的,但我想知道是否有更好的方法:
// This variable will keep track of when the user has typed.
var b = false;
$(document).on('keyup', function () {
console.log("Setting b to true.");
b = true;
});
setInterval(func, 5000);
function func()
{
if (b == true) {
console.log("Keeping alive!");
// Make AJAX call here.
}
b = false;
console.log(" Setting b to false.");
}
我愿意接受建议。
【问题讨论】:
-
为什么需要间隔?肯定只听按键事件就足够了吗?
-
另外,避免使用
setInterval,而是使用嵌套的setTimeouts。 -
5秒间隔真的有必要吗?每 x 分钟一次“心跳”就足够了。并且可能将
mousemove添加到事件列表中。 -
5 秒 仅用于示例。实际上可能是 5 分钟、7 分钟等。
-
@BenM 我放入间隔的原因是因为我不想每次用户按下一个键时都进行 AJAX 调用。另外,使用嵌套的
setTimeout's 有什么原因吗?
标签: javascript session server