javascript中的内存泄漏
(1)概念:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。
(2)主要原因:
1)当页面中元素被移除或替换时,若元素绑定的事件仍没被移除,在IE中不会作出恰 当处理,此时要先手工移除事件,不然会存在内存泄露。
2)循环引用:常见并且一般情况下无害,但是,在 IE 中,如果循环引用中的任何对 象是 DOM 节点或者 ActiveX 对象,垃圾收集系统则不会发现它们之间的循环关 系与系统中的其他对象是隔离的并释放它们。最终它们将被保留在内存中,直到浏 览器关闭。(打破循环)
3)自动类型装箱转换:IE下造成内存泄漏(先转换成相应类型)。
4)DOM插入顺序从外到内,IE特有问题(应该从内到外添加)。
5)反复重写同一个属性会造成内存大量占用(但关闭IE后内存会被释放,避免这样写)
6)闭包(打破循环引用,将引用对象置空)。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。