javascript - Bagaimana Cara Menghancurkan Intersection Observer dengan Benar?
Saat ini saya sedang membungkus API IntersectionObserver ke dalam aksi Svelte. Sebagian dari ini memerlukan pembersihan dalam fungsi destroy(), berikut adalah apa yang saya miliki.
function observe(node: HTMLElement, key: string) {
const observer = new IntersectionObserver(nodes => {
locations[key] = nodes[0]!.isIntersecting;
locations = locations;
});
observer.observe(node);
return {
// this is the focus of my question
destroy() {
observer.unobserve(node);
}
}
}
Apakah ada hal lain yang perlu saya lakukan untuk menghancurkan IntersectionObserver?
Jawaban #1
Menurut dokumentasi observe():
Untuk berhenti mengamati elemen, panggil
IntersectionObserver.unobserve().
Jadi saya rasa tidak ada lagi yang bisa dilakukan.
Alternatif lain adalah menggunakan observer.disconnect() untuk berhenti memantau semua elemen targetnya.