小弟今天接到一个性能优化的任务,任务如下:
vue+element-ui 的项目,里面有一个表格,表格是树状可展开的,展示的是组织架构。
数据接口在后端的高强度优化下已经到了 1 秒左右,前端递归处理数据格式也优化过了,但是现在页面还是十分卡顿,从 dom 分析看来是 dom 太多导致的,浏览器在任务管理器面板看占的内存达到了 3.4G 。
谷歌了相关方案,大多数是插件和虚拟列表的思路来处理,插件我 github 找了俩,尝试过发现内存依旧不变,并且有别的问题,遂放弃,虚拟滚动思路我看了几篇文章也清楚了,但是问题是我的页面是树状的,并非一个单纯的列表。
虚拟列表的思路:监听滚动位置,根据滚动量在数据中切割出应该显示的部分数据再放到模板里面来渲染,貌似不适用 =。=||
遂来到 V2 请求大伙的帮助。
感谢大家~~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.