当前位置: 首页 > news >正文

vue处理关闭浏览器页签和关闭整个浏览器触发事件调后端接口

事项说明 & 建议
🎯 核心事件 beforeunload (用于提示用户), unload (用于发送请求) 
⚠️ 请求方法 推荐使用 fetch (设置 keepalive: true) 或 navigator.sendBeacon(),避免使用异步的axios 
🔍 区分场景 可以尝试通过时间差判断是关闭还是刷新页签,但方法并非完全可靠 
🧹 内存管理 在Vue组件的 beforeDestroy 生命周期中移除事件监听,避免内存泄漏 

实现步骤与代码示例:

1.在Vue组件中添加事件监听
通常在组件的 mounted 生命周期中添加事件监听,并在 beforeDestroy 中移除。

export default {data() {return {beforeUnloadTime: 0,gapTime: 0,hasUnsavedChanges: true // 根据你的实际业务状态设置
    };},mounted() {window.addEventListener('beforeunload', this.handleBeforeUnload);window.addEventListener('unload', this.handleUnload);},beforeDestroy() {// 组件销毁时,务必移除监听器window.removeEventListener('beforeunload', this.handleBeforeUnload);window.removeEventListener('unload', this.handleUnload);},methods: {// ... 其他方法见后续步骤
  }
};

2.处理 beforeunload 事件(可选)

handleBeforeUnload(event) {if (this.hasUnsavedChanges) {// 以下代码可以触发浏览器默认的确认对话框
    event.preventDefault();event.returnValue = ''; // 这是标准属性,但为了兼容旧浏览器,两者都设置return '';}
},

3.处理 unload 事件并发送请求

方法一:使用 fetch API

handleUnload() {// 注意:这里无法处理服务器响应fetch('/api/your-logout-endpoint', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({ userId: 'user123' }),keepalive: true // 关键!确保请求在页面卸载后也能发出
  });
},

方法二:使用 navigator.sendBeacon()

handleUnload() {const data = JSON.stringify({ userId: 'user123' });// 注意:sendBeacon 默认以 'text/plain' 内容类型发送。// 如果需要以 'application/json' 发送,可以使用 Blobconst blob = new Blob([data], { type: 'application/json; charset=UTF-8' });navigator.sendBeacon('/api/your-logout-endpoint', blob);
},

 

http://www.fuzeviewer.com/news/14628/

相关文章:

  • 从“被动”到“主动”:AI Agent的落地技术分享
  • 搬家公司网站建设价格安卓优化大师2023
  • 丰都网站建设哪家好网站建设与运营公司的市场开发方案
  • 软件网站怎么做阿里域名官网
  • 厦门网站建设方案开发开网络公司做网站挣钱么
  • 网站怎么做电脑系统下载现在网站用什么软件做
  • 建立网站需要昆明网络营销服务公司
  • 番禺建设网站系统媒体网站 建设网络强国
  • 注册公司名字查询系统免费网站优化怎么做
  • calico 路由交换的模式有哪些
  • 做网站有哪些郑州哪里培训网站建设优化好一点
  • 完整企业网站模板学校网站免费建设
  • 莆田网站建设解决方案俄罗斯乌克兰战争最新情况
  • 个人网站怎样申请定制网站对公司有什么好处
  • 哈尔滨 门户网站360免费wifi手机版
  • 网页建站价格做网站公违法嘛
  • 高端网站开发价格鞍山是哪个省哪个市
  • 学校网站要求wordpress 分享插件
  • 北京通州马桥网站建设住建局查询房产信息
  • 举例说明商业网站的建设流程后端开发是什么
  • 网站如何做营销做网站怎么回本
  • 网站嵌入英文地图怎么用dw建设网站
  • mvc电子商务网站开发网站没有百度快照
  • 能看人与动物做的网站做技术网站赚钱
  • 2025年11月常州光伏公司排名:前十强企业综合评估与选择指南
  • 网站软文设计软件培训机构排名
  • 深圳外贸网站定制广西住房城乡建设培训中心
  • 余姚 网站建设网站如何做那种诱导广告
  • 网站制作带模板破解版深圳创业补贴申请条件
  • 实用指南:【金仓数据库】ksql 指南(二) —— 创建与管理本地数据库