e-s*_*tis 22 javascript garbage-collection memory-management
我知道Javascript有一个垃圾收集器.因此,使用delete仅删除对该对象的引用,并且当没有对该对象的引用时,它将被GC删除.
Javascript很棘手,有闭包,模糊名称空间和原型继承,知道何时到现在或为什么并不总是显而易见的.
我正在编写一个相当大的Javascript项目,并希望避免内存泄漏,同时限制全局内存使用.我根本没有处于优化阶段(让我们先把这些东西搞定:-)),但是为了避免编写糟糕的代码,知道内存管理的良好实践会很好.
Bri*_*zel 10
根据我的经验,根据浏览器的不同,垃圾收集器的实现很差/很差.应用良好的面向对象编程实践是一个良好的开端.
我唯一的建议是:不要通过连接DOM和javascript对象来创建内存泄漏(循环引用不会被DOM和JS GC清除).这些错误将占用比您在应用程序中实例化的任何对象多得多的内存.
有关DOM/JS内存泄漏的更多详细信息. http://msdn.microsoft.com/en-us/library/bb250448%28VS.85%29.aspx
我认为通过在 DOM 节点上存储数据,您可以轻松创建并非所有浏览器都可以处理的循环引用。例如:
this.element = document.getElementById('something');
this.element.attachedObject = this;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6840 次 |
| 最近记录: |