首页 / 浏览问题 / 云GIS / 问题详情
marker循环清除绘制导致内存泄漏
7EXP 2017年06月22日
官网示例代码

这个是官网上的示例代码,我用的服务器上发布的自带的示例代码,应该没有多大的差异性,对应的做了修改后的代码如下图:

在chrome浏览器运行的监测情况如下:

像这种的有没有办法解决。

对于IE内存很快就没有了。

1个回答

这是当然的,写个死循环创建大小无限增长的数组或对象(你就是这样用的)或者无限递归也会这样,建议根据具体业务需求去实现业务逻辑,避免这类问题。对象不用及时释放,当然,JavaScript只能通过将指向该对象的所有变量(包括对象的属性等)置为null来让浏览器回收内存,浏览器什么时候回收JavaScript无法控制。

毛瑞
1
1,780EXP 2017年06月22日
建议使用Vector图层,完全可以取代Marker(除了获取marker div自己修改内容这种操作替代不了),点样式可以设置图片的。
还是注意前面说的问题。
难道清除marker的时候没有释放之前marker占用的资源,按理来说,我每次清除图层对应的资源应该被释放的呀(清除dom以及相关注册事件等)。这个是根据具体的业务模拟的,实时显示定位功能,每隔几秒的重新获取在线的位置信息然后绘制到地图上
是清除了的呀,所以说chrome吃内存呀
建议换Vector图层,会好一点
我先换vectorlayer试下吧
...