Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #27705
| From | Joao Rodrigues <groups_jr-1@yahoo.com.br> |
|---|---|
| Newsgroups | comp.lang.javascript |
| Subject | Re: Is it necessary to explicitly destroy elements? |
| Date | 2015-05-16 22:05 -0300 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <mj8pgm$nev$1@speranza.aioe.org> (permalink) |
| References | <mj7odj$ejr$1@dont-email.me> <GC-20150516175759@ram.dialup.fu-berlin.de> <2602320.PcnAOMWr9L@PointedEars.de> |
Thomas 'PointedEars' Lahn wrote: > Stefan Ram wrote: > >> "Leonardo Azpurua" <leonardo@exmvps.org> writes: >>> My question (which is browser dependent, but there's no better place to >>> ask browser related questions than here) is: do most "modern" browsers >>> (say FireFox, Chrome, IE9+, Opera, Safari) automatically handle all the >>> cleanup of a disposed element (detaching event handlers, freeing graphical >>> resources, deallocating memory, etc) for all the elemets inside a disposed >>> control, or is it necessary to provide a function to handle all of it >>> explicitly? >> >> The garbage collectors should take care of JavaScript objects and of >> DOM objects. But some collectors cannot clean up in all situations. >> To be on the safe side: >> >> - avoid circular references between JavaScript objects and DOM objects >> - avoid using closure variables in event handlers >> - avoid using inline event handlers (onclick='f()') >> - avoid using expando properties >> - nullify expando properties and DOM references when not needed anymore > > The IE memory leak issue has been resolved as of IE 9, so given the target > environments none of this is necessary anymore. Therefore, the programming > language to which these measures applied, was JScript, not JavaScript, and > only the MSHTML DOM, not all DOMs. > Even though newer versions of modern browsers seem to have solved the memory leak problems of yore, this issue may arise again because of the single-page applications, for one, JS animations without properly clearing timers. So, we have one more reason to use CSS animations instead of JS animations. In Chrome Developer tools, we can use the Timeline panel -> Memory view, and the 'Take Heap Snapshot' in Profiles, to take heap snapshots at a series of intervals. According to Google [1], "the unique ability of the new tool is to reflect bidirectional dependencies between browser native objects (DOM nodes, CSS rules) and JavaScript objects. This helps to discover otherwise invisible leaks happening due to forgotten detached DOM subtrees floating around." [1] <https://developer.chrome.com/devtools/docs/heap-profiling> There is a good article by Addy Osmani teaching how to chase leaks with Chrome DevTools [2]. [2] <http://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools/> -- Joao Rodrigues
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Is it necessary to explicitly destroy elements? "Leonardo Azpurua" <leonardo@exmvps.org> - 2015-05-16 11:14 -0430
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-16 17:44 +0200
Re: Is it necessary to explicitly destroy elements? "Leonardo Azpurua" <leonardo@exmvps.org> - 2015-05-16 11:32 -0430
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-16 18:06 +0200
Re: Is it necessary to explicitly destroy elements? "Leonardo Azpurua" <leonardo@exmvps.org> - 2015-05-16 11:42 -0430
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-16 18:12 +0200
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-16 18:09 +0200
Re: Is it necessary to explicitly destroy elements? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-16 22:05 -0300
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-17 08:01 +0200
Re: Is it necessary to explicitly destroy elements? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-17 13:29 -0300
Re: Is it necessary to explicitly destroy elements? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-17 19:06 +0200
Re: Is it necessary to explicitly destroy elements? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-17 11:53 +0200
Re: Is it necessary to explicitly destroy elements? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-17 13:20 -0300
csiph-web