卸载页面的时候有必要清除所有事件处理程序吗?

如高程3所说

导致 "空事件处理程序" 的另一种情况,就是卸载页面的时候,IE8- 的问题就比较多,其它浏览器或多或少也有问题,如果页面在被卸载之前没有清理干净事件处理程序,那它们就会滞留在内存中,每次卸载再加载页面时(两个页面来回切换或刷新),内存中滞留的对象就会增加,因为事件处理程序占用的内存并没有被释放。
一般来说最好的做法,就是在页面卸载之前,先通过 onunload 事件处理程序移除所有事件处理程序,在此事件委托又表明了它的优点。

那么大家会在innerHTML删除 DOM 或页面卸载的时候清除事件处理程序吗?

阅读 4.1k
4 个回答

当然要移除了,不然你的事件监听还会保留在内存中,没有释放。代码里只要有事件监听,定时器,还有一些使用闭包的功能不使用了就需要移除掉,避免造成垃圾

肯定是要移除的

当然,如果你想你的页面越来越卡的话,不清可是可以的。

只要不是太古老的浏览器,你懒得清除也没什么关系,只要你确定页面会完全关闭

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题