永远不要断开MutationObserver

时间:2015-04-17 13:22:50

标签: javascript

不断开MutationObserver是不是很糟糕?

我正在对添加到DOM中的新元素进行观察,但我从不执行显式断开连接。这会导致内存问题吗?

1 个答案:

答案 0 :(得分:1)

如果您只需要MutationObserver一次(例如初始化或其他),您应该在不再使用它后将其断开连接。这可能会或可能不会释放一些内存,但它肯定会减少CPU负载。

如果您的网站正常运行需要MutationObserver,并且只需在用户关闭其标签或窗口时断开连接,我会说不需要断开连接,因为浏览器无论如何都必须清理。我的意思是,你可以取消注册事件处理程序,但没有人真的这样做。当然,没有人会删除所有功能和变量,他们希望浏览器能够做到这一点 甚至可能更快断开MutationObserver,因为清理代码(几乎可以肯定)用机器代码编写,其执行速度比JavaScript快得多。但差异很可能是不明显的。

因为你特别要求

  

这会导致内存问题吗?

是的,可以创建内存泄漏。但是,如果浏览器没有执行适当的清理,那么可以声明一个变量,这将是该浏览器中的一个错误 假设一个理智的环境,你应该没有断开你的MO。