From 4c348f574ee1c2613d8bbc6eccf75801bc926ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Sat, 7 Mar 2026 09:59:15 +0800 Subject: [PATCH] =?UTF-8?q?perf(App):=20=E4=BC=98=E5=8C=96=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=85=B3=E9=97=AD=E6=A3=80=E6=B5=8B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将页面关闭检测延迟时间从50ms调整为100ms - 提高区分页面刷新和真实关闭的准确性 - 改进自动退出登录触发机制 --- src/App.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6477526..3c82c5b 100644 --- a/src/App.vue +++ b/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) } } }