【发布时间】:2012-06-14 09:57:14
【问题描述】:
我只想确认我在我的应用中正在做什么。
我创建了一些 jquery 插件,它们在我的页面的 DOM 中添加了一些元素和事件。
例如,我在页面的 DOM 元素中初始化插件:
$("#myplugin_container").myplugin('init', {'data':mydata});
我想知道的:如果我用删除功能删除容器
$("#myplugin_container").remove();
,我会在插件上有内存泄漏,还是会正确删除 jquery 对象?
我希望我的解释清楚......
谢谢!
【问题讨论】:
-
...这取决于插件中的代码(例如,您放置元素的范围和您提供给它的数据)。如果您存储其本地元素的所有设置和数据(例如通过
.data()),则它们很有可能没有泄漏。但是,如果您出于某种原因将元素和数据存储在另一个范围内(例如,在持久数组中),那么即使在您调用.remove()之后,对它的引用也会保留,因此内存将“leak”(用 JavaScript 术语)。 -
在我的插件中,我将数据存储在一个数组中。因此,您对丢失对该数组的引用当然是正确的。我将使用 .data()。谢谢
标签: jquery memory jquery-plugins plugins memory-leaks