removeChild()的DOM元素并没有被回收。这句话不大理解

来源:9-3 JavaScript 内存管理

qq_三岸_0

2020-11-11

老师,您好。removeChild()的DOM元素并没有被回收。这句话不大理解,因为平时工作中,也是经常这样去删除一个元素的。那要避免这个问题,有什么方法去删除一个元素。而且,还能被回收掉呢?

写回答

1回答

Mr_Max

2020-11-12

同学你好!

问题并不在于使用removeChild删除元素,而是创建时的引用导致其不能被回收。一个比较简单的办法是把创建时的引用变量放到一个函数里,这样函数执行完上下文可以自动被回收。

//img1.sycdn.imooc.com/szimg/5fac2db6093b2b7d14700392.jpg


另外提一下,通过chrome调试工具的memory->heap snapshot 可以检查此类内存泄漏问题。

//img.mukewang.com/szimg/5fac2e4609892b5117020342.jpg


2
2
Mr_Max
回复
wibc666
主要看一下detached dom。带括号[]的几个都是V8内部的,不需要管。
2022-02-01
共2条回复

前端性能优化企业级解决方案 6大角度+大厂视野

只要项目还在线,性能优化永远是时刻要关注的问题

1109 学习 · 226 问题

查看课程