Browse Source

perf(App): 优化页面关闭检测逻辑

- 将页面关闭检测延迟时间从50ms调整为100ms
- 提高区分页面刷新和真实关闭的准确性
- 改进自动退出登录触发机制
master
常熟吴彦祖 7 months ago
parent
commit
4c348f574e
  1. 12
      src/App.vue

12
src/App.vue

@ -20,10 +20,10 @@
mounted() {
// 页面加载时标记为"活动状态" - rqrq
sessionStorage.setItem('page_active', 'true')
// 监听浏览器关闭事件,自动退出登录 - rqrq
window.addEventListener('beforeunload', this.handleBeforeUnload)
// 监听页面显示事件(从缓存恢复或刷新后) - rqrq
window.addEventListener('pageshow', this.handlePageShow)
},
@ -52,11 +52,11 @@
handleBeforeUnload(e) {
// 标记为"即将卸载"状态 - rqrq
sessionStorage.setItem('page_active', 'false')
// 延迟50ms检查是否是真正关闭(而不是刷新)- rqrq
// 延迟100ms检查是否是真正关闭(而不是刷新)- rqrq
setTimeout(() => {
const pageActive = sessionStorage.getItem('page_active')
// 如果50ms后仍然是false,说明是真正关闭,执行退出登录 - rqrq
// 如果100ms后仍然是false,说明是真正关闭,执行退出登录 - rqrq
if (pageActive === 'false') {
const token = this.$cookie.get('token')
if (token && token.trim()) {
@ -66,7 +66,7 @@
console.log('检测到浏览器/标签页关闭,已自动退出登录 - rqrq')
}
}
}, 50)
}, 100)
}
}
}

Loading…
Cancel
Save