我的JavaSript代码构建了一个LI元素列表.当我更新列表时,内存使用量会增长,永远不会下降.我在筛测试,则说明该浏览器会被认为是通过删除所有的元素$.remove()或$.emptyjQuery的命令.
如何在没有内存泄漏的情况下删除DOM节点?
有关具体代码,请参阅我的其他问题.
我在Playlist.com上使用Google DFP广告获得了一致的内存泄漏 - 让标签保持打开状态,它始终使用越来越多的内存(仅在广告启用时).
可以在此处找到重现泄漏的示例测试页面:http://dl.dropboxusercontent.com/u/6278910/ad-memory-leak.html.
我们有什么可以帮助减轻泄漏吗?在经济上,显然关闭广告不是一个可能的解决方案.
编辑: 您可以在Chrome中打开开发人员工具并尝试使用内存时间轴 - 每次加载广告时,他们都会占用更多内存.
我认为只要你在页面上,解析/评估JavaScript(不是执行时由JavaScript创建的对象,而是由代码本身占用的空间)将保留在内存中,即使你从中删除了原始脚本节点JavaScript来了.(呃,这是真的吗?)
但是,我想知道 - 如果JavaScript存在于iframe中......并且iframe已从包含文档的树中删除,并且所有对该iframe元素的引用都被删除,那么垃圾收集应该做它的事情. .浏览器是否会释放该iframe中评估脚本所占用的内存?