我有一个单页“shell”应用程序,可以加载多个模块,所有模块都有多个视图。我不一定知道或控制加载哪些模块或视图,可以自定义(添加/删除操作,添加dom元素等)。
由于它是SPA,我想在关闭每个视图时取消绑定所有事件,以避免高内存使用或泄漏。但我不知道哪种类型的事件与哪个元素绑定,所以在CloseView()
,我这样做:
$(this.accessor + ' *').unbind();
本质上是$('#myView *').unbind()
- 取消绑定所有页面元素的所有事件
有时选择器会产生~20个DOM元素,但我看到了 320 元素的高度。平均值似乎在30左右。
为清晰起见编辑:
我是否应该担心选择300多个元素并解除所有事件的绑定会导致性能问题?
答案 0 :(得分:0)
事实证明,jQuery' $('#el').remove();
删除了#el
树中绑定的所有事件,因此这基本上不是问题。 (感谢@KevinB的回答)