不断开MutationObserver会很不好吗?
我正在观察添加到DOM中的新元素,但从未执行显式断开连接。这会导致内存问题吗?
最佳答案
如果您仅需要一次MutationObserver(例如用于初始化等操作),则应在不再使用它后断开它的连接。这可能会或可能不会释放一些内存,但是肯定会减少CPU负载。
如果您的MutationObserver是网站正常运行所必需的,并且仅在用户关闭其选项卡或窗口时才需要断开连接,那么我说不需要断开连接,因为无论如何浏览器都必须清理。我的意思是,您也可以取消注册事件处理程序,但是没有人真正做到这一点。当然,没有人会删除其所有函数和变量,他们希望浏览器能够做到这一点。
而不是断开MutationObserver的连接可能甚至更快,因为(几乎可以肯定)清理代码是用机器代码编写的,其执行速度比JavaScript快得多。不过,这种差异很可能不会引起注意。
既然你特别问
是的,它可以造成内存泄漏。但是,如果浏览器未执行适当的清除操作,则可以声明一个变量,这可能是该浏览器中的错误。
但是,假设环境不错,则无需断开MO即可正常运行。
关于javascript - 永远不要断开MutationObserver的连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29700467/