2010-03-16 52 views
1

我有一个在网站上托管的JavaScript小部件。这个小部件跟踪其本地名称空间中的许多变量的状态。此外,它还支持多个事件的听众,如鼠标移动。我是否需要在窗口卸载时明确销毁JavaScript对象?

我应该明确销毁窗口卸载状态跟踪变量和分离事件侦听器吗?或者,在用户离开承载我的小部件的页面之后,依靠浏览器做好清理工作是否可行?

回答

4

一旦你摆脱了窗户,你摆脱了它的一切。因此,不需要做你自己的垃圾收集。如果某个浏览器有内存泄漏,那不是你的错,你的垃圾收集可能无济于事。

+0

请给出降低答案的原因! – 2010-03-16 20:10:39

+0

@Bilal:在一个完美的世界里,他们会。这只是一次开车射击,不幸的是,这种事情偶尔会发生在这块主板上。 – Robusto 2010-03-16 20:55:25

+0

在完美的世界中,内存泄漏将不存在。不幸的是,我们(更重要的是:我们的用户)仍然使用泄漏内存的浏览器。我认为你应该至少做一些手动垃圾收集:http://javascript.crockford.com/memory/leak.html(没有downvote从我,顺便说一句)。 – 2010-03-17 01:06:01