Adakah Mengalih Keluar Elemen DOM Mengalih Keluar Pendengar Acaranya Secara Automatik?

Patricia Arquette
Lepaskan: 2024-11-21 09:19:09
asal
301 orang telah melayarinya

Does Removing a DOM Element Automatically Remove Its Event Listeners?

Adakah Pembuangan Elemen DOM Membayangkan Pembuangan Pendengar Peristiwa?

Apabila elemen DOM dialih keluar, pendengar acara yang berkaitan turut menghadapi penyingkiran daripada memori. Walau bagaimanapun, tingkah laku bergantung pada keupayaan penyemak imbas dan keadaan khusus.

Pelayar Moden

  • JavaScript Biasa: Jika elemen yang dialih keluar tiada rujukan yang tinggal (bebas rujukan), kutipan sampahnya juga akan mengalih keluar sebarang acara yang dilampirkan pengendali/pendengar.
  • Pertimbangkan contoh ini:

    var a = document.createElement('div');
    var b = document.createElement('p');
    // Add event listeners to b etc...
    a.appendChild(b);
    a.removeChild(b);
    b = null; // Reference to 'b' is removed
    Salin selepas log masuk

Walau bagaimanapun, jika rujukan kepada elemen masih wujud, elemen dan pendengar acaranya kekal dalam ingatan.

var a = document.createElement('div');
var b = document.createElement('p'); 
// Add event listeners to b etc...
a.appendChild(b);
a.removeChild(b); // Reference to 'b' still exists
Salin selepas log masuk
  • jQuery: Kaedah jQuery seperti remove() menggunakan kaedah cleanData() untuk mengalih keluar data/peristiwa berkaitan elemen secara automatik apabila dialih keluar daripada DOM.

Pelayar Lama (Terutamanya Versi IE Lama)

  • Kebocoran Memori: Pelayar ini mengalami ingatan kebocoran disebabkan oleh pendengar acara yang memegang rujukan kepada elemen induk mereka.
  • Adalah dinasihatkan untuk mengalih keluar pendengar secara manual dalam kes sedemikian, memastikan pemuliharaan ingatan.

Untuk mendapatkan cerapan lanjut tentang gelagat khusus penyemak imbas dan isu kebocoran memori yang berpotensi, rujuk kepada sumber yang disediakan dalam butiran terperinci respons:

  • Artikel MSDN: "Memahami dan Menyelesaikan Corak Kebocoran Internet Explorer"
  • Kebocoran memori JScript
  • Kebocoran memori dalam IE8
  • Memori JavaScript Kebocoran

Atas ialah kandungan terperinci Adakah Mengalih Keluar Elemen DOM Mengalih Keluar Pendengar Acaranya Secara Automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan