浏览器长时间未操作执行 location.reload(), 循环进行
主要代码如下:
let refreshTimer;
function startRefreshTimer() {
refreshTimer = setTimeout(refreshPage, 30 * 60 * 1000); // 30分钟后刷新页面
}
function resetRefreshTimer() {
clearTimeout(refreshTimer);
startRefreshTimer();
}
function refreshPage() {
clearTimeout(refreshTimer);
location.reload(); // 刷新页面
// 重新启动定时器
//resetRefreshTimer();
}
function handleUserInteraction() {
resetRefreshTimer();
}
document.addEventListener("mousemove", handleUserInteraction);
startRefreshTimer()
Vue2项目使用示例:
mounted() {
this.noOpertion();
},
methods: {
noOpertion() {
let refreshTimer;
function startRefreshTimer() {
refreshTimer = setTimeout(refreshPage, 30 * 60 * 1000); // 30分钟后刷新页面
}
function resetRefreshTimer() {
clearTimeout(refreshTimer);
startRefreshTimer();
}
function refreshPage() {
clearTimeout(refreshTimer);
location.reload(); // 刷新页面
// 重新启动定时器
//resetRefreshTimer();
}
function handleUserInteraction() {
resetRefreshTimer();
}
document.addEventListener("mousemove", handleUserInteraction);
startRefreshTimer()
}
},