Mootools事件泄漏

时间:2011-01-12 06:47:31

标签: mootools

可以在此处找到演示此问题的示例:

link text

测试显示了一个基本的Mootools类,它包含一个附加了click事件的元素变量。还有一个“清理”功能来删除事件并使元素变量无效。

我的问题是,当我循环一千次以创建“LeakClass”实例并清理它时,它会导致重大的内存泄漏,就像没有明天一样。我在IE8和Chrome上测试了这个。

另一方面,我注意到的是,如果我注释掉添加“click”事件的行,代码就不会泄漏。

有人可以帮助我以不泄漏的方式构建类/事件。

提前致谢。

1 个答案:

答案 0 :(得分:1)

你想要实现什么目标?

this.element = null;不会从DOM中分离元素或将其销毁,它只是删除对它的引用。为此,您应该使用调用内部清理函数的this.element.destroy(); - 首先应用一小部分子节点GC,然后执行.empty(),然后将其从DOM中删除,最后将其全部删除。你的代码只会创建大量的元素,这些元素将不再被引用但缺乏引用并不意味着缺乏存在。每个元素都会自行消耗内存,事件与否。