我可以监控聚合物元素 detached()(disconnectedCallback() for 2.+)以确保没有内存泄漏吗?

Can I monitor polymer elements detached() (disconnectedCallback() for 2.+) to make sure there is no memory leak?

我是否正确地假设当一个元素被分离时,即它的 Polymer 1.+ 的 detached() 方法或 Polymer 2.+ 的 disconnectedCallback() 运行时,对该元素及其子元素的所有引用都被删除并且不再有内存泄漏与该元素相关联?

不,detached/disconnectedCallback 是在从文档中删除元素时调用的,但这并不表示没有对该元素的引用。

例如,一个 Polymer 元素可以调用 setInterval() 并使用一个包含对其属性之一的引用的回调。从文档中删除该元素(例如,通过 Node.removeChild())不会自动停止计时器,因此该元素有可能在不再存在于文档中后保留在内存中。应该调用 clearInterval() 以避免这种情况。

另请注意 JavaScript 当前没有垃圾回收语义。