【发布时间】:2012-02-16 02:40:29
【问题描述】:
我看到通过.on() 注册的事件处理程序保存在$.cache 中。
我还看到事件处理程序也保存在$(elem).data()。
$.cache 中保存的对象指的是注册事件的 DOM 节点。当 DOM 节点被分离时,这会导致内存泄漏,这使得 .off() 调用是强制性的。
我有一种情况,我不知道 DOM 节点(我附加了事件处理程序)何时被分离。虽然我可以在我的代码中保存对该 DOM 节点的引用并调用 .off() 进行清理,但这似乎并不好,因为要知道何时删除 DOM 节点并不容易。
最好的方法是什么?
【问题讨论】:
标签: jquery dom memory-leaks