我不知道该脚本中缺少什么-它应该使用jQuery库'idle'来检测没有活动-在这种情况下,应该停止时间并且不向服务器发出请求。
“空闲”事件会触发(与活动事件一样),但是用于调用AJAX请求的计时器永远不会停止-WTF>?!?!
```
<script>
var minTaskUpdateInterval = 1000 * 30; // 30 second intervals
function initTaskTimeTracking()
{
Ext.Ajax.request({
url: 'service/application/task/updatetimer',
params: {interval: minTaskUpdateInterval}
});
}
var intervalId = 0;
idle({
idle: 10000, // NOTE: IDLE notification when
onIdle: function () {
clearInterval(intervalId);
console.log('Idle');
},
onActive: function () {
intervalId = setInterval(initTaskTimeTracking, 5000);
console.log('Active');
}
}).start();
</script>
```
答案 0 :(得分:1)
我的猜测是onActive被多次调用,因此您可以运行多个计时器。因此,请在重新运行之前检测是否有间隔。
var intervalId;
idle({
idle: 10000, // NOTE: IDLE notification when
onIdle: function () {
clearInterval(intervalId);
intervalId = false;
console.log('Idle');
},
onActive: function () {
if (!intervalId) {
intervalId = setInterval(initTaskTimeTracking, 5000);
}
console.log('Active');
}
}).start();