最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Freeing memory used by unattached DOM nodes in Javascript - Stack Overflow

programmeradmin8浏览0评论

As part of my application, I'm putting together a set of small Dom nodes that are not shown all at once. I'm storing them in an internal array. The user can invoke their display in which case I reparent them to the div that is used to display them. That's all well and good. But when it's time to replace all of them with new ones, I want to destroy the old ones (effectively deallocate them). Otherwise, over time, memory usage could grow exponentially. How do I force the browser js engine to do this? Is just setting each of the items in my array of Dom nodes to null enough? Is there something else I have to do? Or maybe I don't have to worry about this at all?

As part of my application, I'm putting together a set of small Dom nodes that are not shown all at once. I'm storing them in an internal array. The user can invoke their display in which case I reparent them to the div that is used to display them. That's all well and good. But when it's time to replace all of them with new ones, I want to destroy the old ones (effectively deallocate them). Otherwise, over time, memory usage could grow exponentially. How do I force the browser js engine to do this? Is just setting each of the items in my array of Dom nodes to null enough? Is there something else I have to do? Or maybe I don't have to worry about this at all?

Share Improve this question asked Feb 8, 2009 at 18:24 KarimKarim 18.6k14 gold badges63 silver badges72 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

If you set each item to null, they will be automatically garbage collected.

Yes, setting the items to null should be ok… Except that some implementation details must be taken care of with Internet Explorer: its handling of circular references is dodgy. See http://msdn.microsoft./en-us/library/bb250448.aspx

Circular References—When mutual references are counted between Internet Explorer's COM infrastructure and any scripting engine, objects can leak memory

So you have to break circular references in some cases.

发布评论

评论列表(0)

  1. 暂无评论