vxe-table icon indicating copy to clipboard operation
vxe-table copied to clipboard

引入vxe-table样式的同时引入element-ui的样式会存在内存泄漏

Open fengpang opened this issue 3 years ago • 6 comments

(必填)请填写问题描述或截图: ? 使用vxe-table的同时引入了element-ui的样式会出现内存泄漏 注释掉element的样式或者vxe-table的样式之后内存泄漏消失

打开chrome无痕模式(可以在edge以及chrome无痕模式上重现,在chrome正常模式(装了很多插件)以及firefox上都无法重现) 下面的在线链接在官方示例的基础上,加了切换隐藏显示, tabledata的行数,以及在css中引入了element-ui的样式可以看到随着点击次数的增加,内存逐渐上升,并且无法被回收 (必填)请填在线链接: ? https://jsrun.net/uhTKp/edit (必填)请填写期望的结果: ? table消失之后,组件占用的内存能被回收 (必填)请填写以下信息:

  • OS: ? win10 64位
  • Browser: ?chrome 版本 93.0.4577.63(正式版本) (64 位) edge 版本 93.0.961.38 (官方内部版本) (64 位) firefox: 版本 91.0.2 (64位)
  • vue: ?2.6.12
  • vxe-table: ?3.3.12

fengpang avatar Sep 07 '21 03:09 fengpang

@fengpang 请问后续解决了吗? 我测试打开5000*5000的表格,多打开几次内存就满了,关闭表格组件也没用,只有刷新页面才能回收内存

pjxxcc avatar Jun 23 '22 11:06 pjxxcc

@fengpang 请问后续解决了吗? 我测试打开5000*5000的表格,多打开几次内存就满了,关闭表格组件也没用,只有刷新页面才能回收内存 我是把vxe-table.css这个文件拉下来,然后把文件里面的 [class*=vxe-], [class*=vxe-]:after, [class*=vxe-] :after, [class*=vxe-]:before, [class*=vxe-] :before { -webkit-box-sizing: border-box; box-sizing: border-box } 这几行css注释掉就好了

fengpang avatar Jun 24 '22 01:06 fengpang

我完全不引用vxe-table的样式文件,只按需引入的table组件,也会有内存无法回收问题,估计原因和你的还不太一样。
另外样式文件为什么会导致内存不能回收呢,知道原因吗?

pjxxcc avatar Jun 24 '22 02:06 pjxxcc

我完全不引用vxe-table的样式文件,只按需引入的table组件,也会有内存无法回收问题,估计原因和你的还不太一样。 另外样式文件为什么会导致内存不能回收呢,知道原因吗?

不太清楚,可能是blink的bug

fengpang avatar Jun 24 '22 03:06 fengpang

我完全不引用vxe-table的样式文件,只按需引入的table组件,也会有内存无法回收问题,估计原因和你的还不太一样。 另外样式文件为什么会导致内存不能回收呢,知道原因吗?

不太清楚,可能是blink的bug

似乎被我解决了,提了个pr: https://github.com/x-extends/xe-utils/pull/43 内存泄漏的原因是throttle这个闭包会缓存最后一次mouse-wheel事件,把dom都给缓存了。

pjxxcc avatar Jun 30 '22 07:06 pjxxcc

我完全不引用vxe-table的样式文件,只按需引入的table组件,也会有内存无法回收问题,估计原因和你的还不太一样。 另外样式文件为什么会导致内存不能回收呢,知道原因吗?

不太清楚,可能是blink的bug

似乎被我解决了,提了个pr: x-extends/xe-utils#43 内存泄漏的原因是throttle这个闭包会缓存最后一次mouse-wheel事件,把dom都给缓存了。

我在线重现例子里面是可以明显看到把css注释了内存泄漏就没了,你这个可能是别的问题

fengpang avatar Jun 30 '22 08:06 fengpang