Bedeutet das Entfernen des DOM-Elements das Entfernen des Ereignis-Listeners?
Wenn ein DOM-Element entfernt wird, werden auch die zugehörigen Ereignis-Listener aus dem Speicher entfernt. Das Verhalten hängt jedoch von den Fähigkeiten des Browsers und den spezifischen Umständen ab.
Moderne Browser
Betrachten Sie dieses Beispiel:
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
Wenn jedoch noch Verweise auf das Element vorhanden sind, bleiben das Element und seine Ereignis-Listener bestehen Speicher.
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
Ältere Browser (insbesondere ältere IE-Versionen)
Weitere Einblicke in browserspezifisches Verhalten und potenzielle Probleme mit Speicherverlusten finden Sie im In der ausführlichen Antwort bereitgestellte Ressourcen:
Das obige ist der detaillierte Inhalt vonEntfernt das Entfernen eines DOM-Elements automatisch seine Ereignis-Listener?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!