//当页面停留在原始页面时,不做任何操作5分钟之后刷新页面
const timeoutId = ref(null);
const timeoutNumber = ref(0);
const startTimer = () => {
timeoutId.value = setTimeout(() => {
timeoutNumber.value=timeoutNumber.value+60;
console.log(timeoutNumber.value)
if (timeoutNumber.value >= 300) {
location.reload();
clearTimeout(timeoutId.value);
timeoutNumber.value = 0;
}
startTimer(); // 递归调用自身以持续计数
}, 60000);
};
const handleActivity = () => {
clearTimeout(timeoutId.value);
timeoutNumber.value = 0;
startTimer();
};
onMounted(() => {
// 初始化逻辑
init();
// 在组件挂载后立即清除可能存在的定时器,然后开始新的定时器
if (timeoutId.value) {
clearTimeout(timeoutId.value);
}
startTimer();
document.addEventListener('mousedown', handleActivity);
});
onBeforeUnmount(() => {
if (timeoutId.value) {
clearTimeout(timeoutId.value); // 清除定时器
}
document.removeEventListener('mousedown', handleActivity); // 移除事件监听器
});