Vytváram pár divs s onclick
udalosť na nich ako deti „parentDiv“. V budúcnosti som sa rozhodol parentDiv.innerHTML = "xyz"
kde xyz je viac divs s onclick
udalosti, ktoré nahradia tie staré.
Moja otázka: vyprchajú všetky prehliadače pamäť, pretože som neodstránil onclick
udalosti starých divov pred ich odstránením z domu?
odpovede:
1 pre odpoveď č. 1Navrhoval by som čítať ďalej úniku pamäte ako vysvetlil Douglas Crockford. V tomto článku nájdete podrobné príklady únikov pamäte a dokonca aj peknú funkciu vymazania, ktorá vám umožní prekonať problémy s nimi spojené. Užite si to!
0 pre odpoveď č. 2
Ak ich odstránite z DOM, všetky obsluhy udalostí mali by byť z nich odstránené a nespôsobovať únik.
Douglas Crockford má vynikajúce písanie Úniky pamäte JavaScript, Dobre stojí za prečítanie.
0 pre odpoveď č. 3
Nie, je na správe prehliadača. Po odstránení objektov prehliadač uvoľní (alebo aspoň by mal) uvoľniť priradenú pamäť. Nechcel by som na to banky.
V každom prípade, pokiaľ to nerobíte tisíckrát, neočakávam, že to bude problém.
0 pre odpoveď č. 4
Zvyčajne nie.
Ak sa však váš obslužný program onclick stane uzáverom, ktorý odkazuje na prvok HTML, ku ktorému je pripojený, môže v niektorých prehľadávačoch uniknúť.
Pozrite sa na túto príručku, ktorú som napísal, aby som získal ďalšie informácie o únikoch pamäte JavaScriptu a o tom, ako ich nájsť a opraviť: http://www.vladalexandruionescu.com/2012/08/javascript-memory-leaks.html, To by vám malo objasniť veci.