关于内存泄漏的基本概念可以参考以下两篇文章:
http://boke.io/javascriptnei-chang-jian-nei-cun-xie-lou-yuan-yin/
http://boke.io/gao-ding-nei-cun-xie-lou/
其中内容讲到dom情况引起的泄漏,讲的不够详细,由于原文代码引入了zepto,而在zepto绑定事件的时候,会产生闭包保存了对原dom元素的引用,导致即使将dom清空,事件如果不off的话,dom还是不会回收。
重复清空的结果,会导致dom、listener的数量不断上升,同时通过profile的snapshot看到,closure数量不断上升。
dom数量,从snapshot中看到detached Dom tree的count在不断增加
同时闭包增加如下:
对应zepto代码如下:
题外话,还没发现单纯的js泄漏导致的严重问题,最近发生的情况是,使用了大量的css3动画,每个动画元素比较复杂,导致ios crash,ios7比较明显,ios8概率变小但还是会发生。参考资料显示,大量复杂css3动画导致gpu内存不够导致,目前没有很好的解决办法