JS内存漏洞与AJAX应用程序和事件监听器?

时间:2011-11-09 03:24:38

标签: javascript ajax jquery memory-leaks

所以我正在制作一个完全用AJAX构建的复杂项目管理系统。使用哈希导航,网站会加载并删除大量HTML,并在每次加载时添加大量事件侦听器。

我的问题是,在这些元素被$ .remove'd之后,现代浏览器是否垃圾收集事件监听器。

如果没有,最好使用onclick =“doFunction();”而是为了防止添加事件监听器?我宁愿不这样做,但如果它能防止内存泄漏,那么它可能是最好的选择。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

不,最好使用jQuery添加事件监听器,因为 jQuery处理可能的内存泄漏

答案 1 :(得分:2)

使用onclick不是要走的路。 jQuery是一个很好的选择,特别是如果它在整个应用程序中证明是有用的。如果您只将它用于Ajax,您可能会找到更小的库来完成这项工作。

如果你想使用jQuery,我强烈建议使用.on()而不是在每次加载时添加事件监听器。如果对委托使用.on()(替换已弃用但仍在运行的.delegate()方法),则不需要为每次加载重新绑定它们,这实际上将消除由于绑定/解除绑定意大利面而导致泄漏的可能性。