1
私は、それにcreatedCallbackの中に変異オブザーバを作成するCustom Elementクラスを持っています。今まで呼んだことのない時点はobserver.disconnect()
です。これはメモリリークを引き起こすでしょうか?もしそうなら、それをどう扱うことをお勧めしますか?ガベージコレクタはよく、それがメモリリークを持っていなければならないように設計されている場合カスタム要素コンストラクタでMutationObserverを作成した際にメモリリークが発生しましたか?
class SomeElement extends HTMLElement {
createdCallback() {
// Observe nodes in the future.
const observer = new MutationObserver(changes => {
for (let change of changes) {
if (change.type != 'childList') continue
for (let node of change.addedNodes)
this.childConnectedCallback(node)
for (let node of change.removedNodes)
this.childDisconnectedCallback(node)
}
})
observer.observe(this, { childList: true })
}
childConnectedCallback(node) {
// ...
}
childDisconnectedCallback(node) {
// ...
}
}
何らかの理由で(私は現時点で覚えていません)、私の場合は「切断」と呼ぶのは実現不可能でした。それが私が尋ねた理由です。まあ、私はJSエンジンが十分にスマートになることを願っています... – trusktr