我是否正确假设当一个元素被分离时,即它为Polymer 1的detached()方法+或者Polymer + 2的disconnectedCallback()运行时,对该元素及其子元素的所有引用都被删除而没有内存泄漏可能再与该元素相关联?
答案 0 :(得分:0)
不,从文档中删除元素时会调用detached
/ disconnectedCallback
,但它不表示没有对元素的引用。
例如,Polymer元素可以使用包含对其某个属性的引用的回调来调用setInterval()
。从文档中删除该元素(例如,通过Node.removeChild()
)不会自动停止计时器,因此元素在不再存在于文档中之后可以保留在存储器中。应该调用clearInterval()
以避免这种情况。
另请注意,JavaScript目前没有垃圾收集语义。 [1]