vue:使用elementui开发的后台管理系统,切换路由的时候,偶尔会出现界面卡顿的现象,需要刷新整个界面才能正常加载,大佬们,这个怎么解决呢?
###你这个...自己先排查问题啊,这大家也猜不出啦。
看看是不是运行一段时间才有这个问题,是有内存没释放还是咋?
###就单单卡顿不好分析原因,你要看看是你的页面渲染数据量过大,还是资源请求时间过长,还是路由未使用懒加载原因等
###切换路由的时候,偶尔会出现界面卡顿的现象,需要刷新整个界面才能正常加载
这种情况很有可能是报错了啊,看下控制台,排查一下吧
###估计是页面太重或者请求太多
###打开F12
的Network
看看请求吧,是不是有什么请求超时了,或者报错了啥的
这种偶现的问题,只能靠加日志,然后倒推问题所在,好在你只是在路由切换的时候出现问题,需要加日志的地方不会很多。
###你的代码里是不是使用了嵌套for循环大量数据之类的
###可能是内存泄漏,是不是有上千行数据或者卡片?如果有,使用虚拟列表。
vue keep-alive 是不是用的太多了?
是不是递归没有中止(不太可能)?
还有,在哪个浏览器 哪个版本出现了这种情况,是不是其他浏览器 其他版本不会出现,还是其他浏览器也会出现?
只能先找到问题,在处理问题。看不到网页,也没办法猜想(尝试使用 puppeteer 模拟操作,查看埋点等信息) 。
如果页面存在周期太长的话,小问题就会不断积累成大问题。是否可以让用户在一定时间没操作退出一下?
还有一种暴力方法(不适合当前场景,只是提供一种方案),是根据业务模块拆分单页面为多页面。这样页面存在周期减少了,全局状态少了,bug 也少了