我们项目里,组件元素事件是通过jquery绑定的,现在有个问题就是如果不先用jquery取消绑定,那么组件无法成功销毁,最终内存占用特别高。如果我用js原生的方法绑定事件,当组件销毁时,页面元素也销毁了,其绑定的事件是否也会被销毁?
我们项目里,组件元素事件是通过jquery绑定的,现在有个问题就是如果不先用jquery取消绑定,那么组件无法成功销毁,最终内存占用特别高。如果我用js原生的方法绑定事件,当组件销毁时,页面元素也销毁了,其绑定的事件是否也会被销毁?
var e = document.createEvent('HTMLEvents');
e.initEvent('click',false,false);
d0.dispatchEvent(e);
明显删掉d0元素还触发了点击事件
如果你说的销毁
只是从Dom tree中移除的话,只要js中还存在对元素的引用,元素和事件都还是存在内存中的。
直接实例化组件new A();或者var a = new A(); a = null;都可以使组件A不被GC掉
13 回答13.1k 阅读
8 回答3.1k 阅读
3 回答1.6k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.6k 阅读
3 回答2.4k 阅读✓ 已解决
5 回答1.9k 阅读✓ 已解决
高程上说有一部分浏览器(尤其是ie)会将元素和事件处理程序的引用保存在内存中,如果知道某个元素要被移除可以手工移除事件处理程序