我应该使用卸载事件吗?

时间:2011-07-28 19:57:21

标签: jquery memory browser

我正在制作灯箱,我是否需要使用

$(window.top).unload(function() { .. });

要清理变量,还是所有浏览器都会自动清理所有内容并重置内存,什么不是?

我是否需要打扰或浏览器是否会为我做这件事?什么所有的内存泄漏和所有..

编辑:我将大量数据附加到div元素。那么我需要在卸载时执行removeData吗?

3 个答案:

答案 0 :(得分:5)

(是的,浏览器为你做了|不,你不需要做任何清理),Javascript被垃圾收集。

答案 1 :(得分:1)

看看这个,它可以帮助你理解使用基于jquery的jquery和插件时的内存泄漏。

jQuery memory leak with DOM removal

答案 2 :(得分:1)

在javascript中有几种不同的方法可以创建内存泄漏。大多数都与在javascript对象和DOM之间创建循环引用有关。见:

http://www.ibm.com/developerworks/web/library/wa-memleak/

但是否则,不,您不必显式删除对事物的引用 - javascript垃圾收集器将为您执行此操作。

但是,您发布的代码段会产生副作用,您应该注意这一点。如果您为文档的onunload处理程序附加任何内容,那么支持缓存DOM / javascript引擎状态以便在向后/向前导航时快速检索的浏览器将无法再将页面保留在{{1 (见http://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/)。这可能会影响性能。