Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
fengpang opened this issue Sep 7, 2021 · 6 comments
Labels
bug Something isn't working

Comments

@fengpang
Copy link

fengpang commented Sep 7, 2021

(必填)请填写问题描述或截图:

使用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 fengpang added the bug Something isn't working label Sep 7, 2021
@pjxxcc
Copy link

pjxxcc commented Jun 23, 2022

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

@fengpang
Copy link
Author

@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注释掉就好了

@pjxxcc
Copy link

pjxxcc commented Jun 24, 2022

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

@fengpang
Copy link
Author

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

不太清楚,可能是blink的bug

@pjxxcc
Copy link

pjxxcc commented Jun 30, 2022

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

不太清楚,可能是blink的bug

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

@fengpang
Copy link
Author

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

不太清楚,可能是blink的bug

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants