1 背景
我的前端项目之前在请求数据量较小时,增删改查导出功能都运行正常,但最近需查询大量数据,会导致浏览器卡死崩溃,出现out of memory报错。
2 解决思路
一开始崩溃是出现在查询完将数据导出为pdf这一步,所以考虑是不是使用的package(jspdf)在前端做了太多计算导致的,然并卵,数据本身大小只有几十MB,也只是做了一个筛选的操作,不至于将十几G内存挤爆。
然后才发现,其实在一开始查询完数据在网页上显示时就已经非常卡顿了,所以我试着先不显示el-table,果然网页也流畅多了,导出也很顺利,原来是数据量变大后,el-table的渲染需要占用大量内存,即使我只有2w多行,几十MB的数据,完全一次性渲染出来也会多占用4、5G内存。
3 解决方案
给el-table的显示做了分页处理,不要在傻乎乎的放在一页一次性全部渲染出来。
4 总结
我遇到的这个问题应该算是一个比较低级的错误,如果你也遇到了类似的问题,不妨也从我的解决思路出发,检查看看有没有占用大量内存的前端组件,试着将其分解,如果还未解决,可以尝试搜索更底层的解决方案,例如“前端vue项目内存泄漏排查”等内容。