javascript中的内存泄漏

(1)概念:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。

(2)主要原因:

    1)当页面中元素被移除或替换时,若元素绑定的事件仍没被移除,在IE中不会作出恰    当处理,此时要先手工移除事件,不然会存在内存泄露。

    2)循环引用:常见并且一般情况下无害,但是,在 IE 中,如果循环引用中的任何对    象是 DOM 节点或者 ActiveX 对象,垃圾收集系统则不会发现它们之间的循环关     系与系统中的其他对象是隔离的并释放它们。最终它们将被保留在内存中,直到浏    览器关闭。(打破循环) 

    3)自动类型装箱转换:IE下造成内存泄漏(先转换成相应类型)。

    4)DOM插入顺序从外到内,IE特有问题(应该从内到外添加)。

    5)反复重写同一个属性会造成内存大量占用(但关闭IE后内存会被释放,避免这样写)

    6)闭包(打破循环引用,将引用对象置空)。

posted @ 2015-05-09 20:38  素颜-阿牛  阅读(247)  评论(0编辑  收藏  举报