浏览器长时间不操作 页面卡死的问题

文章讲述了在项目中遇到的浏览器闲置导致页面卡死的问题,原因是浏览器安全机制会删除无活动的js文件。作者提供了多种解决方案,如定时请求、心跳检测、延长Session时间等,最终选择使用心跳检测来避免页面卡死。
摘要由CSDN通过智能技术生成

项目场景:

这次遇到的问题是浏览器长时间没有进行操作,导致页面卡死,但是强制刷新之后恢复正常。


问题描述

因为后端设置的token过期时间是24h,所以很长时间页面都不会重新请求,这次出现问题打开控制台发现,

找不到js,查看打包之后的文件发现并没有该名字的js文件,令人想破头脑也想不出这个文件哪里来的,

在这里插入图片描述
在这里插入图片描述

本来以为是打包文件丢失,因为我得路由确实是动态导入的,但是刷新之后是可以正常运行的啊,所以应该不是这个问题。,就询问另一个前端是否每次打开都会随机命名某些js文件,有可能是使用的vue框架或者是element-plus引用的js文件。

原因分析:

经过查询得知:在这里插入图片描述果然,浏览器安全性考虑,长时间不操作会删除某些js文件,也就是说那些文件的名称也是随机命名的。

给出了以下几种解决方案:

  1. 页面刷新:可以使用JavaScript定时检查用户的操作,如果用户有一段时间没有进行任何操作,则定期刷新页面。

  2. 心跳检测:可以通过发送小的Ajax请求到服务器来维持会话活跃状态。

  3. 服务器端Session设置:可以增加Session的超时时间,或者使用其他机制来维持用户会话状态。

  4. 使用本地存储:可以使用localStorage或sessionStorage来存储用户的状态,并在页面加载时恢复状态。

  5. WebSocket:如果需要更实时的交互,可以使用WebSocket来保持连接,而不是依赖于轮询或者Ajax。

    最后我采取了第2种方法:心跳检测


解决方案:

setInterval(()=>{
  GetLanguageFields()  //  定时请求 防止页面卡死
},60*60000)```


  • 31
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值