JQuery删除和内存泄漏

时间:2012-06-14 22:59:46

标签: javascript jquery

我正在开发游戏,我已经看到很多内存消耗,我使用jquery动画,在动画完成后,i。删除()元素,我的问题是,从dom树中删除元素后,对象仍然存在于内存中?

2 个答案:

答案 0 :(得分:8)

Javascript是一种垃圾收集语言。这意味着当没有代码保存对它的任何引用时,内存中的对象将被释放,并且(对于DOM对象)它不在DOM中。因此,当您从DOM中删除对象时,只要您的javascript的其他任何部分都没有对该DOM对象的引用,DOM对象将被清除,并且当垃圾收集器获取时,它的内存将返回到可用内存池。有机会跑。

请记住,当垃圾收集器释放内存时,它可能不会立即返回系统或永远不会。它可以作为分配给浏览器的内存保留,但它可供浏览器中的其他内存请求使用。因此,释放脚本中的内存不一定会使浏览器使用的总内存减少。

如果反复执行相同的操作,则只会导致内存泄漏,导致浏览器使用的总内存不断增加。只有这样,你才能确定某些记忆被“泄漏”永久消耗。

有关垃圾收集的细微差别,特别是对于旧版本的IE,但对于现代浏览器,您需要记住的主要是,如果您在自己的javascript数据结构中持有对象的引用,它不会被垃圾收集。如果你没有引用它并且它不在DOM中,它将被释放并且它的内存被回收。

答案 1 :(得分:4)

如果没有对该元素的引用,垃圾收集将在下次运行时清理它。你可以使用.remove,但不要担心垃圾收集。